在WebView中调用JavaScript函数

时间:2013-03-07 20:52:22

标签: javascript android function android-webview

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

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

我在我的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>

1 个答案:

答案 0 :(得分:6)

loadUrl()是异步的。您过早地拨打第二个loadUrl() 方式。您需要等到页面加载后,可能需要使用WebViewClient并观看onPageFinished()