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