在Android中的webview中调用Javascript方法

use*_*455 3 html javascript android webview

我试图从webview中调用html页面中定义的javascript方法.函数未被调用,我在日志中看不到任何错误.

这是html文件.

    </head>
    <body>
    <script type="text/javascript">
        function callJS(){
            $.ajax({url:"http://10.0.2.2:5010"});
        }
    </script>
    </body>
    </html>
Run Code Online (Sandbox Code Playgroud)

这是android中一个Activity中的Java代码

    WebView webView = new WebView(this);
    webView.getSettings().setJavaScriptEnabled(true);
    webView.loadUrl("file:///android_asset/temp.html");
    webView.loadUrl("javascript:callJS()");
Run Code Online (Sandbox Code Playgroud)

不知道如何调试这个.当我onload=callJS()在html中添加一个body标签时,我看到正在进行远程调用.所以,看起来我的HTML很好,它正被加载到webview中.但是,webview无法直接调用javascript方法.

Pi *_*cii 7

您应该在加载页面时执行javascript函数

webView.setWebViewClient(new WebViewClient() {
    public void onPageFinished(WebView view, String url) {
        webView.loadUrl("javascript:callJS()");
    }
});
Run Code Online (Sandbox Code Playgroud)

当你加入onload=callJS()意味着在加载页面时将调用javascript函数.对于调试,你可以将console.log("你的文字在这里")放在你的javascript函数中,你将在你的android工作室日志中得到它.(通常与标签I/chromium).否则,您可以在Android上使用Chrome进行远程调试.这里的文档https://developer.chrome.com/devtools/docs/remote-debugging.