Jag har testat att exponera en java-funktion för html/js via addJavascriptInterface(). Funktionen vill dock inte anropas trots att jag följt instruktionerna till punkt och pricka (inbillar jag mig iaf).
Java-kod som exponerar funktion för html/js:
Kod:
package com.myApp;
import android.app.Activity;
import android.os.Bundle;
import android.webkit.WebView;
import android.media.MediaPlayer;
import android.net.Uri;
import java.io.*;
import com.myApp.R.id;
public class myApp extends Activity
{
WebView webview;
MediaPlayer mp;
public class SoundPlayer
{
public void PlaySound_mySound()
{
mp = new MediaPlayer();
mp = MediaPlayer.create(getBaseContext(), R.raw.mySound);
mp.start();
}
}
SoundPlayer sp = new SoundPlayer();
@Override
public void onCreate(Bundle savedInstanceState)
{
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
webview = (WebView)findViewById(id.webview);
webview.getSettings().setJavaScriptEnabled(true);
webview.loadUrl("file:///android_asset/WEBPAGES/index.html");
webview.addJavascriptInterface(sp, "sp");
}
}
Javascript som anropar java-funktionen:
HTML:
<img src="sound.png" onClick="window.sp.PlaySound_mySound()" />