java - Android WebView 在 onPageStarted 和 onPageFinished 之间注入(inject) JavaScript

标签 java javascript android webview

我需要将一些 JavaScript 注入(inject)到要加载到 WebView 中的网页中,但是在 onPageFinished 处注入(inject)它已经太晚了,而且 onPageStarted 太早了。有什么办法可以在这两个事件之间注入(inject)它吗?

webView.setWebViewClient(new WebViewClient() {
    @Override
    public void onPageFinished(WebView view, String url) {
        super.onPageFinished(view, url);
        progress.setVisibility(view.GONE);
        view.loadUrl("javascript:registerObjectDetailsCallback(" +
                                    "function(details) {" +
                                        "if (details.length == 1) {" +
                                            "window.location.href = 'callback:' + escape(details[0]);" +
                                        "} else if (details.length > 1) {" +
                                            "alert('Error: callback set by registerObjectDetailsCallback was passed multiple selection');" +
                                        "}" +
                                    "}" +
                                ");");
        Log.d("onPageFinished: ", "JavaScript registered.");
    }
}

最佳答案

我最终没有使用这个,我想出了一个更好的解决方案 - 但你可以做的是使用 WebChromeClient 中的 onProgressChanged 方法命令在加载的某些阶段执行操作。

webView.setWebChromeClient(new WebChromeClient() {
    @Override
    public void onProgressChanged(WebView view, int progress) {
        // Do something cool here
    }
});

关于java - Android WebView 在 onPageStarted 和 onPageFinished 之间注入(inject) JavaScript,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25290599/

相关文章:

android - Vector drawable 抛出由长 pathData 引起的 Resources$NotFoundException

java - 在 Netbeans 中成功发送通知后如何获得 Firebase 响应?

java - Rally:给定项目的 UserStory 计数

java - HTMLunit抑制错误: deprecated?

javascript - 提交表单后重定向到主页不起作用

javascript - 使用 JQuery/JavaScript 调用/单击 mailto 链接

javascript - 在 fireFox 中关闭父窗口

java - 替换两个字符串之间的字符串

android - 如何在android中将设备坐标系映射到世界坐标系

java - Android 注释 DialogFragment