1

我知道这个问题已经被问过很多次了,我已经检查了所有的解决方案并研究了一切。但是,这根本不适合我。

我不知道我做错了什么。有人可以帮我吗?

我正在加载一个本地 html 文件WebView,然后调用 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>
4

1 回答 1

6

loadUrl()是异步的。你打电话给你的第二种loadUrl() 方式太快了。你需要等到你的页面被加载,也许通过使用 aWebViewClient和观察 for onPageFinished()

于 2013-03-07T20:53:31.083 回答