WebView
调起javascript function
的方法1:
使用webview.loadUrl("javascript:FuncName()");
注意事项:1:必须在onPageFinished()之后再调用上面的方法。
2:拦截alert方法的时候需要重写WebChromeClient的onJsAlert方法。
下面是示例代码
WebSettings settings = webView.getSettings();
//允许javascript
settings.setJavaScriptEnabled(true);
settings.setJavaScriptCanOpenWindowsAutomatically(true);
webView.setWebChromeClient(new WebChromeClient(){
@Override
public boolean onJsAlert(WebView view, String url, String message, final JsResult result) {
AlertDialog.Builder b = new AlertDialog.Builder(MainActivity.this);
b.setTitle("Alert");
b.setMessage(message);
b.setPositiveButton(android.R.string.ok, new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialog, int which) {
result.confirm();
}
});
b.setCancelable(false);
b.create().show();
return true;
}
});
webView.loadUrl("file:///android_asset/framework.html");
webView.setWebViewClient(new WebViewClient(){
@Override
public void onPageFinished(WebView view, String url) {
webView.post(new Runnable() {
@Override
public void run() {
webView.loadUrl("javascript:spawnNumber()");
}
});
}
});
}
WebView
调起javascript function
的方法2:
使用webView.evaluateJavascript("javascript:func",CallBack c)
来调起javascript
注意:1:此方法只能在api 19及之后调用。
2:此方法也需要再onPageFinished()后面调用
下面是具体的代码
webView.evaluateJavascript("javascript:spawnNumber()", new ValueCallback<String>() {
@Override
public void onReceiveValue(String s) {
Toast.makeText(MainActivity.this, "current api is above 19:" + s, Toast.LENGTH_SHORT).show();
}
});
网友评论