您的位置:首页 > Web前端 > JavaScript

解决addJavascriptInterface混淆的bug

2013-08-01 12:03 197 查看
现在android下应用开发的界面用html5+css3写,交互用javascript和java沟通,但是用上混淆后发现javascript调用java类定义的方法老说找不到这个方法。

一番折腾后发现是用proguard混淆后java定义的类变了名字,不仅如此,这个类定义的方法不知所踪,所以才导致javascript找不到这个方法。

假设我们定义的java类为:

点击(此处)折叠或打开

public class JSNotify {

public void notify ( String url ) {

if ( null != mBrowser ) {

mBrowser.loadUrl(url);

}

}

}

在主类中和javascript的勾结代码为:

点击(此处)折叠或打开

// install callback function

mBrowser.addJavascriptInterface(new JSNotify(), "external");

混淆文件加上这段就没问题了:

点击(此处)折叠或打开

-keep public class <Package Name>.MainActivity$JSNotify {

public void notify(java.lang.String);

}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: