最近做项目,使用webView看一些网页,和网页开发一起找什么方法进行交互,还好解决,分享一下经验。
成都创新互联公司为客户提供专业的网站设计、成都做网站、程序、域名、空间一条龙服务,提供基于WEB的系统开发. 服务项目涵盖了网页设计、网站程序开发、WEB系统开发、微信二次开发、移动网站建设等网站方面业务。对于webView的使用就不写了,百度大法好,主要是交互方面,对WebView增加以下代码:
binding.webView.getSettings().setUserAgentString("Android"); binding.webView.addJavascriptInterface(new JavascriptInterface(this), "Android");
新建类,并对类的方法声明 @android.webkit.JavascriptInterface ,方法就是我们自己的操作了。
public class JavascriptInterface { private Context context; public JavascriptInterface(Context context) { this.context = context; } @android.webkit.JavascriptInterface public void openImage(String img) { Log.i("---------------->", img + ""); } }
H5端对需要调用的地方,添加以下代码,这样就可以H5调用Android的方法进行愉快的玩耍了。
window.Android.openImage(img);
值得注意的地方是
看着两个红框的内容必须一致,我就是粗心犯了不一致的错误,找了半天才发现。
上面写完后,如果上线包需要混淆的话,加入以下代码
-keepattributes *Annotation* -keepattributes *JavascriptInterface* -keepclassmembers class * { @android.webkit.JavascriptInterface; } -keepclassmembers public class xx.xx.JavascriptInterface{ ; ; public *; private *; }
xx.xx是你的自己的类地址。
你是否还在寻找稳定的海外服务器提供商?创新互联www.cdcxhl.cn海外机房具备T级流量清洗系统配攻击溯源,准确流量调度确保服务器高可用性,企业级服务器适合批量采购,新人活动首月15元起,快前往官网查看详情吧