android webview onPageFinished从JavascriptInterface重定向到新页面?

android webview onPageFinished从JavascriptInterface重定向到新页面?,android,webview,Android,Webview,获取了一个Web视图,加载了一个页面,完成了javascript函数的调用 但是,当我尝试将browser.loadUrl加载到新页面时,此操作不起作用 加载此文件后,如何更改webview的当前页面 代码: browser=(WebView)findviewbyd(R.id.w1); browser.getSettings().setJavaScriptEnabled(true); browser.getSettings().setDomStorageEnabled(true); addJa

获取了一个Web视图,加载了一个页面,完成了javascript函数的调用
但是,当我尝试将browser.loadUrl加载到新页面时,此操作不起作用
加载此文件后,如何更改webview的当前页面

代码:

browser=(WebView)findviewbyd(R.id.w1);
browser.getSettings().setJavaScriptEnabled(true);
browser.getSettings().setDomStorageEnabled(true);
addJavascriptInterface(这是“HTMLOUT”);
setWebViewClient(新的WebViewClient(){
@凌驾
公共void onPageFinished(WebView视图,字符串url){
browser.loadUrl(“javascript:window.HTMLOUT.processHTML(“”+document.getElementsByTagName('html')[0]。innerHTML+“”);”;
}
});
browser.loadUrl(“第1页”);
@JavascriptInterface
公共空处理html(字符串html){
if(html==null)
返回;

loadUrl(“page2”);这里有一些建议,希望对您有所帮助

  • 您应该在onPageFinished中使用view.loadUrl

  • 为了避免无限次重新加载页面,您应该在onPageFinished中检查url

  • 下面是一个粗略的示例(不加载javascript),有时onPageFinished可能需要时间加载,请稍等片刻

     WebView browser = new WebView(MainActivity.this);
     browser.getSettings().setJavaScriptEnabled(true);
     browser.getSettings().setDomStorageEnabled(true);
    
     browser.setWebViewClient(new WebViewClient() {
         @Override
         public void onPageFinished(WebView view, String url) {
             super.onPageFinished(view, url);
             if(!url.contains("google")){
                 Log.i("test", "onPageFinished, reload another");
                 view.loadUrl("https://www.google.com");
             }
         }
     });
     browser.loadUrl("https://www.yahoo.com");
    
  •  WebView browser = new WebView(MainActivity.this);
     browser.getSettings().setJavaScriptEnabled(true);
     browser.getSettings().setDomStorageEnabled(true);
    
     browser.setWebViewClient(new WebViewClient() {
         @Override
         public void onPageFinished(WebView view, String url) {
             super.onPageFinished(view, url);
             if(!url.contains("google")){
                 Log.i("test", "onPageFinished, reload another");
                 view.loadUrl("https://www.google.com");
             }
         }
     });
     browser.loadUrl("https://www.yahoo.com");