项目中使用WebView + Javascript 相互使用时,在签名打包后发现,js无效,问题就是proguard造成的。
解决方法如下:
-keepclassmembers class * {
@android.webkit.JavascriptInterface <methods>;
}
WebView的简单使用如下:
webView = (WebView) findViewById(R.id.webview);
// WebSettings 设置JavaScript激活
webView.getSettings().setJavaScriptEnabled(true);
// 指定和Javascript交互的对象和别名
webView.addJavascriptInterface(new WebAppInterface(taskContent), "Android");
// url请求,可以访问本地资源,也可以动态
// webView.loadUrl("file:///android_asset/html/task_details_client.html");
webView.loadUrl(http://www.baidu.com);
private class WebAppInterface {
public String taskContent;
WebAppInterface(String taskContent) {
this.taskContent = taskContent;
}
@JavascriptInterface
public String getContent() {
// javascript 交互的方法
return taskContent;
}
}