-1
私はここから例を試しています:https://developer.android.com/guide/webapps/webview.htmlしかし、それはちょうどDoes not Work™です。WebViewのJavascriptが機能しない
これは私のActivity
次のとおりです。
public class MainActivity extends Activity {
private static final String TAG = "browser";
protected WebView wv;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
wv = (WebView)findViewById(R.id.wvBrowser);
WebSettings webSettings = wv.getSettings();
webSettings.setJavaScriptEnabled(true);
wv.addJavascriptInterface(new WebAppInterface(this), "android");
wv.loadUrl("http://192.168.3.183");
}
}
これはWebAppInterface
です:
public class WebAppInterface {
Context mContext;
/** Instantiate the interface and set the context */
WebAppInterface(Context c) {
mContext = c;
}
/** Show a toast from the web page */
@JavascriptInterface
public void showToast(String toast) {
Toast.makeText(mContext, toast, Toast.LENGTH_SHORT).show();
}
}
と、最終的にはJavascriptを:
<html>
<head>
<title>Android JavaScript Scan Test</title>
</head>
<body>
<h3>Scan Test</h3>
<input id="barcode">
<input type="button" value="Say hello" onClick="showAndroidToast('Hello Android!')" />
<script type="text/javascript">
f = 0;
function showAndroidToast(toast) {
document.getElementById("barcode").value = typeof(Android) + (f++);
Android.showToast(toast);
}
</script>
</body>
</html>
そして、それは私を与えるすべてがundefined0
あり、undefined1
明らかに、Android
オブジェクトは私のWebView
で利用できません。
何か不足していますか?
"android"でコールバックを登録し、大文字の "Android"で使用しようとしました。名前を同じにする必要があります。 – MatPag
@MatPagあなたが答えを出すなら、それを受け入れることができます。明らかにAndroidのドキュメントには間違いがあります(このコードはそのままです)。 –
完了、幸運:) – MatPag