1.js交互webview的初始化中添加:
webSetting.setJavaScriptEnabled(true); mWebView.addJavascriptInterface(new InJavaScriptNetObj(), "java_jump");定义的类:
public class InJavaScriptNetObj { @JavascriptInterface public void getNative() { //js调用时候,客户端要执行的方法 } }
js调用的混淆:
-keepclassmembers class 包名.类名$InJavaScriptNetObj{ public *; }2.监听webview中html页面是否有某些控件:
mWebView.addJavascriptInterface(new InJavaScriptLocalObj(), "java_obj");
mWebView.setWebViewClient(new WebViewClient() { @Override public boolean shouldOverrideUrlLoading(WebView view, String url) { return false; } @Override public WebResourceResponse shouldInterceptRequest(WebView view, WebResourceRequest request) { return super.shouldInterceptRequest(view, request); } @Override public void onPageFinished(WebView view, String url) { view.loadUrl("javascript:window.java_obj.getSource(document.getElementsByTagName('html')[0].innerHTML);"); super.onPageFinished(view, url); } });
public class InJavaScriptLocalObj { @JavascriptInterface public void getSource(String html) { //对html进行操作等 } }