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