我知道这个问题已被多次询问,我检查了所有解决方案,并研究了一切。但是,这根本不适合我。
我不知道我做错了什么。有人可以帮帮我吗?
我在我的WebView
中加载了一个本地html文件,然后调用了JavaScript函数:
wv.loadUrl("file:///android_asset/sample.html");
wv.getSettings().setJavaScriptEnabled(true);
JavascriptInterface javasriptInterface = new JavascriptInterface(MyActivity.this);
wv.addJavascriptInterface(javasriptInterface, "MyInterface");
wv.loadUrl("javascript:loadpath()");
HTML文件是:
<html>
<head>
</head>
<body>
<script type="text/javascript">
function callDoSomething() {
// Do something
}
function loadpath() {
// Is not called no matter whatever operation I do here. Just printing a string, setting variable, android callback anything.
document.write("Hi");
document.getElementById('img').src = "path.png";
}
</script>
<form name="myForm" action="FORM">
<img src="" alt="Autofill" /><br>
<input type="button" value="Submit" onClick="callDoSomething()" />
</form>
</body>
</html>
答案 0 :(得分:6)
loadUrl()
是异步的。您过早地拨打第二个loadUrl()
方式。您需要等到页面加载后,可能需要使用WebViewClient
并观看onPageFinished()
。