我正在尝试从 webview 中调用在 html 页面中定义的 javascript 方法。未调用函数,并且我在日志中没有看到任何错误。
这是 html 文件。
</head>
<body>
<script type="text/javascript">
function callJS(){
$.ajax({url:"http://10.0.2.2:5010"});
}
</script>
</body>
</html>
这是android中Activity中的Java代码
WebView webView = new WebView(this);
webView.getSettings().setJavaScriptEnabled(true);
webView.loadUrl("file:///android_asset/temp.html");
webView.loadUrl("javascript:callJS()");
不确定如何调试它。当我在 html 的 body 标记中添加 onload=callJS()
时,我看到正在进行远程调用。所以,看起来我的 HTML 没问题,它正在加载到 webview 中。但是,webview 无法直接调用 javascript 方法。
最佳答案
您应该在页面加载时执行 javascript 函数
webView.setWebViewClient(new WebViewClient() {
public void onPageFinished(WebView view, String url) {
webView.loadUrl("javascript:callJS()");
}
});
当你放置 onload=callJS()
意味着当页面加载时将调用 javascript 函数。
对于调试,您可以将 console.log("your text here") 放入您的 javascript 函数中,您将在 android studio 日志中获取它。 (通常使用标签 I/chromium
)。否则,您可以在 Android 和 Chrome 上使用远程调试。这里的文档 https://developer.chrome.com/devtools/docs/remote-debugging .
关于javascript - 从 Android 的 webview 中调用 Javascript 方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35906557/