Android webview js注入

1729 ワード

1.
  //   js
    private static final String insertJavaScript = "javascript:$(\".news-banner-container-new-article,.recommendation-container-new-article-test,.download-text,.info\").remove();console.log(window.obj.loadSucces());";


 //      wevview       
 @JavascriptInterface
    public void loadSucces() {
        Toast.makeText(this, "This method is called!", Toast.LENGTH_SHORT).show();
    }

 viewById.addJavascriptInterface(this, "obj");
//              
 viewById.setWebChromeClient(new WebChromeClient());

        viewById.loadUrl("https://m.toutiao.com/i6507046999341138446/");

        viewById.setWebViewClient(new WebViewClient() {
            @Override
            public void onPageStarted(WebView view, String url, Bitmap favicon) {
                super.onPageStarted(view, url, favicon);

            }

            @Override
            public boolean shouldOverrideUrlLoading(WebView view, String url) {
                view.loadUrl(url);
                return true;
            }

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

            }

            @Override
            public void onReceivedError(WebView view, int errorCode,
                                        String description, String failingUrl) {
                super.onReceivedError(view, errorCode, description, failingUrl);
            }

        });

2注意内容
  • もし私達はウェブページの内容を修正するだけなら、下のフォーマットでconsolone.logs(window.obj.loadSucs();logメソッドは、あなたが本当に実行しているjsメソッドです.このウェブサイトに導入されたすべての第三者ライブラリは、
  • を呼び出すことができます.