gpt4 book ai didi

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

转载 作者:行者123 更新时间:2023-11-28 19:39:55 29 4
gpt4 key购买 nike

我需要将一些 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/

29 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com