在webview中addJavascriptInterface,js调用java函数打包出现不响应,即使对混淆处理
2014-07-07 12:56
776 查看
在webview中写的java的函数,js调用时在android打包时不响应,本人初入安卓,使用webview时,调试没问题,打包后调试出现问题,不管哪个版本,都不响应,网上搜了很多办法,按照那样的方法都没成功,最后自己瞎尝试,终于解决。
webview.addJavascriptInterface(new JavascriptInterface(this), "diao");
webview.getSettings().setJavaScriptEnabled(true);
加入混淆并区别后还是无法响应,解决方案(对调试没问题,打包出问题):
在proguard_project.txt里有这句话
# If your project uses WebView with JS, uncomment the following
# and specify the fully qualified class name to the JavaScript interface
# class:
#-keepclassmembers class fqcn.of.javascript.interface.for.webview {
# public *;
#}
如果你在proguard.cfg中使用:
-keep public class <Package Name>.ActivityName$JavascriptInterface {
public *;
}
结果是不响应的。你需将proguard_project.txt修改为:
#
If your project uses WebView with JS, uncomment the following
# and specify the fully qualified class name to the JavaScript interface
# class:
#-keepclassmembers class
<Package Name>.ActivityName$JavascriptInterface{
# public *;
#}
(或去掉proguard_project.txt中的那段关于webview的代码(不推荐去掉)),这样就能成功了。
本文分享,错误之处请别怪,只是如实记录自己解决了问题的方法,可能不适用于你。在找问题期间浪费了不少时间,希望能帮到你。
webview.addJavascriptInterface(new JavascriptInterface(this), "diao");
webview.getSettings().setJavaScriptEnabled(true);
加入混淆并区别后还是无法响应,解决方案(对调试没问题,打包出问题):
在proguard_project.txt里有这句话
# If your project uses WebView with JS, uncomment the following
# and specify the fully qualified class name to the JavaScript interface
# class:
#-keepclassmembers class fqcn.of.javascript.interface.for.webview {
# public *;
#}
如果你在proguard.cfg中使用:
-keep public class <Package Name>.ActivityName$JavascriptInterface {
public *;
}
结果是不响应的。你需将proguard_project.txt修改为:
#
If your project uses WebView with JS, uncomment the following
# and specify the fully qualified class name to the JavaScript interface
# class:
#-keepclassmembers class
<Package Name>.ActivityName$JavascriptInterface{
# public *;
#}
(或去掉proguard_project.txt中的那段关于webview的代码(不推荐去掉)),这样就能成功了。
本文分享,错误之处请别怪,只是如实记录自己解决了问题的方法,可能不适用于你。在找问题期间浪费了不少时间,希望能帮到你。
相关文章推荐
- 在webview中addJavascriptInterface,js调用java函数打包出现不响应,即使对混淆处理
- 在webview中addJavascriptInterface,js调用java函数打包出现不响应,即使对混淆处理
- 安卓与JS互调之android webview addJavascriptInterface 的方法不能调用
- 备忘--android 4.2+ WebView的addJavascriptInterface(), js找不到注入的函数
- JS调Native:(1)拦截url:WebViewClient.shouldOverrideUrlLoading (2)绑定Java对象:WebView.addJavascriptInterface
- Android 4.2版本以下使用WebView组件addJavascriptInterface方法存在JS漏洞
- Android中WebView的addJavascriptInterface混淆方法
- android webView中js调用java函数的关键之处
- 关于混淆打包后,webview 无法调用js方法 的问题
- webView 实现 与 javascript调用java方法(也称js调用native 方法) helloworld
- webView 实现 与 javascript调用java方法(也称js调用native 方法) helloworld
- Android在使用WebView时,通过Javascript调用JAVA函数
- 关于android webview js桥(addJavascriptInterface) 失效的问题
- Android Java调JS:WebView.loadUrl("javascript:functionName()") JS调Java:WebView注册JS函数
- android webview javascriptinterface实现从HTML JS调用ANDROID内部程序
- Android中Webview使用javascript调用事先定义好的Java函数
- 关于webview中java调用js函数(解决loadUrl函数没反应)
- Android在使用WebView时,通过Javascript调用JAVA函数
- android js互相调用的方法,混淆后js无效,addJavascriptInterface使用注意事项
- android webview addJavascriptInterface 的方法不能调用