Android webview js注入

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調(diào)用原生的方法
 @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 注意內(nèi)容

  • 如果說我們只是修改網(wǎng)頁的內(nèi)容需要以下面格式書寫
    console.log(window.obj.loadSucces());
    log方法中是你真正執(zhí)行的js方法,該網(wǎng)站引入的所有第三方庫都能調(diào)用
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

推薦閱讀更多精彩內(nèi)容