Javascript Android Webview:无法从Java代码调用JS函数

Javascript Android Webview:无法从Java代码调用JS函数,javascript,java,android,webview,Javascript,Java,Android,Webview,我有以下带有界面的webview: public void setWebview() { try { mWebView = (WebView) findViewById(R.id.intro_browser); // Set Chrome instead of the standard WebView mWebView.setWebChromeClient(new WebChromeClient());

我有以下带有界面的webview:

 public void setWebview() {
        try {
            mWebView = (WebView) findViewById(R.id.intro_browser);
            // Set Chrome instead of the standard WebView
            mWebView.setWebChromeClient(new WebChromeClient());
            mWebView.getSettings().setJavaScriptEnabled(true);
            mWebView.getSettings().setAllowFileAccess(true);
            mWebView.getSettings().setAllowFileAccessFromFileURLs(true);
            mWebView.getSettings().setAllowUniversalAccessFromFileURLs(true);
            mWebView.clearCache(true);
            mWebView.clearHistory();
            mWebView.getSettings().setAllowContentAccess(true);
            mWebView.getSettings().setBlockNetworkImage(false);
            mWebView.addJavascriptInterface(new WebViewInterface(), interfaceName);
            mWebView.loadUrl("file:///android_asset/www/my_access.html");
            mWebView.loadUrl("javascript:toBeCalledFromAndroid()");
        } catch (Exception e) {
            Log.d("TEST", e.getMessage());
        }

    }
我可以通过JS调用Java本机代码,但我还需要通过Java代码调用JS函数,以便将一些数据传递到webview

因此,我试图补充:

mWebView.loadUrl("javascript:toBeCalledFromAndroid()");
加载静态页面内容后

但它不起作用:

HTML

<head>
    <meta name="viewport" content="width=device-width,initial-scale=1.0,maximum-scale=1.0">
    <link rel="stylesheet" href="css/bootstrap-combined.min.css">
    <link rel="stylesheet" href="css/styles.css">
    <script src="libs/jquery-1.9.1.min.js"></script>
    <script src="libs/jquery-migrate-1.2.1.min.js"></script>
    <script src="libs/jquery.dataTables.min.js"></script>
    <script src="libs/FixedColumns.js"></script>
    <script src="libs/angular.min.js"></script>
    <script src="js/app.js"></script>
    <script src="js/init.js"></script>


</head>
</html>
我应该如何更新代码以将数据从Java传递到JS


非常感谢您的建议。

解决方案如下:

我调用第二个
loadUrl()
太快了,
loadUrl()
是异步的。所以我需要等待页面加载


调用webView.loadUrl(“javascript:toBeCalledFromAndroid('test')”OnPageFinished方法中的code>解决了我的问题

首先,尝试以下方法:mWebView.loadUrl(“javascript:console.log('called from JAVA');”;看看logcat
function toBeCalledFromAndroid() {
        alert("TEST");
    }