项目要用到这个功能,之前也没搞过,写了一个简单的demo没效果。
就是在android中调用js中的一个函代码如下
就是在android中调用js中的一个函代码如下
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
webview = (WebView) findViewById(R.id.webview);
webview.getSettings().setJavaScriptEnabled(true);
webview.loadUrl("file:///android_asset/gg.html");
button = (Button) findViewById(R.id.button);
button.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
webview.loadUrl("javascript:do()");
}
});
}
html文件如下
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8"/>
<title>Test Demo</title>
<p>test</p>
<script language="javascript" type="html/text">
function do(){
alert("Test");
}
</script>
</head>
</html>
解决方案
50
还有一点WebView 原生不支持alert方法,需要改造以后才能支持
/* WebChromeClient must be set BEFORE calling loadUrl! */ webview.setWebChromeClient(new WebChromeClient() { @Override public boolean onJsAlert(WebView view, String url, String message, final android.webkit.JsResult result) { new AlertDialog.Builder(myApp) .setTitle("javaScript dialog") .setMessage(message) .setPositiveButton(android.R.string.ok, new AlertDialog.OnClickListener() { public void onClick(DialogInterface dialog, int which) { result.confirm(); } }) .setCancelable(false) .create() .show(); return true; }; }); webview.loadUrl("file:///android_asset/gg.html");
大致就是这样,到百度再搜下webview alert 有好多解决方案