android Webview中注入js,用于解决第三方页中出现返回事件window.history.go(-1),无法响应问题

问题描述:

平时我们在使用WebView时,出现第三方页中出现返回事件window.history.go(-1),这时点击网页中的返回页面就一直重新刷不能退出当前界面

解决方案:

通过在android Webview中注入js,用于解决无法响应问题。

例如如下网页test.html:



 
   New Document 
  
    
    
    
    
    
    
    
    
 

 
  
返 回
在Android代码中:
WebSettings webSettings = mWebview.getSettings() ;
webSettings.setDefaultTextEncodingName( "utf-8");
webSettings.setJavaScriptEnabled(true);

mWebview.addJavascriptInterface(new JSInterface(), "TEST_WEB");   //声明android端相应js中方法的回调接口  注意“TEST_WEB”与js中声明的要对应

 mWebview.setWebViewClient(new WebViewClient() {
            @Override
            public boolean shouldOverrideUrlLoading(WebView view, String url) {

                return true;
            }

            @Override
            public void onPageFinished(WebView view, String url) {
                super.onPageFinished(view, url);

                mWebview.loadUrl("javascript:function testapi(){TEST_WEB.finish();}$(\".jump-back-btn\").on(\"click\",function(){testapi();window.history.go(-1);return false;})");
            }
        });

mWebview .loadUrl("file:///android_asset/test.html");

public class JSInterface {

        @JavascriptInterface
        public void finish() {
            TestActivity.this.finish();
        }
    }


 
    
向webview中注入js事件,注意要在onPageFinished中注入,保证当前界面全部加载完成








你可能感兴趣的:(android Webview中注入js,用于解决第三方页中出现返回事件window.history.go(-1),无法响应问题)