你走对了。对于在 webview 中使用 javascript,在将 url 加载到 webview 之后,(您可以在 onPageFinish 函数中捕捉到页面加载)在 onPageFinish 函数中,您可以像这样调用 js:
但首先您必须使用以下代码块授予 webview 权限:
settings.setJavaScriptEnabled(true);
settings.setJavaScriptCanOpenWindowsAutomatically(true);
webview.loadUrl("javascript:setPageHeight("+contentHeight+");"); // you can pass param with call js function at loaded page.
webview.loadUrl("javascript:alert('test');"); // or you can call like this
要使用 js 从 webview 获取结果参数,您必须有一个像这样的子类:
class JavaScriptInterface {
public void showToast(String msg) {
Toast.makeText(mContext, "Received Msg :" + msg,Toast.LENGTH_SHORT).show();
}
}
然后你在定义 webview 行把这个给你的 webview
webview.addJavascriptInterface(new JavaScriptInterface(), "MyAndroid");
最后,您在 js 中的 html 中调用 java 函数,如下所示:
<html>
<head>
<script type="text/javascript">
function sayHello(msg){
//calls Android's JavaScriptInterface Function
MyAndroid.showToast(msg);
}
</script>
</head>
<body >
<div onclick="sayHello('hello')"> Click Me !! </div>
</body>
</html>