日期:2014-05-16  浏览次数:20365 次

android 4.2对于addJavascriptInterface,有了安全限制
class JsObject {
   @JavascriptInterface
    public String toString() { return "injectedObject"; }
}
webView.addJavascriptInterface(new JsObject(), "injectedObject");
webView.loadData("", "text/html", null);
webView.loadUrl("javascript:alert(injectedObject.toString())");

注意上面加粗的@JavascriptInterface一定要添加。

另外,要是有混淆编译时候,别忘记加上下面:

-keep public class com.yourfullpackagename.Yourapp$JavaScriptInterface
-keepclassmembers class com.yourfullpackagename.Yourapp$JavaScriptInterface {*;}
-keepattributes com.yourfullpackagename.Yourapp$JavaScriptInterface
-keepattributes *Annotation*