在WebView中调用JavaScript函数

Rac*_*hit 1 javascript android function android-webview

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

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

我正在加载一个本地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()");
Run Code Online (Sandbox Code Playgroud)

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>
Run Code Online (Sandbox Code Playgroud)

Com*_*are 6

loadUrl()是异步的.你过早地打电话给你的第二种loadUrl() 方式.你需要等到你的页面被加载,也许是通过使用WebViewClient和观看onPageFinished().