WebView使用中js调用java代码时targetSdkVersion大于17时,无法调用成功
来源:互联网 发布:五线谱输入软件 编辑:程序博客网 时间:2024/05/22 00:47
[原]WebView使用中js调用java代码时targetSdkVersion大于17时,无法调用成功
2014-9-22阅读464 评论2
开发过程中需要使用webview加载一个网络图片并在点击图片时有相应的动作,由于webview截获了一切动作事件,使用js调用java本地代码的方式来完成需求,在使用时,发现在use-sdk中配置android:targetSdkVersion大于17时,js不能调用到java代码,
修改方法有两个:
1.修改android:targetSdkVersion="10",这个只能为一时的解决方案,
2. 查找官方文件:说在17以上需要添加一个接口JavascriptInterface才能用,即在js调用的java代码上方加上JavascriptInterface的注解,同时,在混淆代码时,注意不要混淆JavascriptInterface的注解,否则也会出现js不能调用java代码的情况发生。(-keepattributes *Annotation*)
1
2
3
4
5
6
7
class
JsObject {
@JavascriptInterface
public
String toString() {
return
"injectedObject"
; }
}
webView.addJavascriptInterface(
new
JsObject(),
"injectedObject"
);
webView.loadData(
""
,
"text/html"
,
null
);
webView.loadUrl(
"javascript:alert(injectedObject.toString())"
);
0 0
- WebView使用中js调用java代码时targetSdkVersion大于17时,无法调用成功
- WebView使用中js调用java代码时targetSdkVersion大于17时,无法调用成功
- Android中使用WebView调用java代码
- android代码混淆之webView中JS无法调用
- js页面调用WebView中java代码初步
- Android的WebView中js与java代码相互调用
- Android的WebView中js与java代码相互调用
- Android WebView的js中调用java代码
- Webview中js与本地java代码的互相调用
- Android之Webview使用Java代码和JS相互调用
- 在WebView中调用js代码
- webView中调用js
- 在sdk的17以上版本webview中js不能调用java代码
- WebView/JS/Java调用
- android中webview调用js方法,js调用java方法
- webview中js调用java方法
- android中利用webview调用网页上的js代码 Java代码调用js并传递参数
- Java中调用js代码
- HDU 1671 Phone List(字典树寻找前缀)
- HTML 提示 - 如何查看源代码
- jQuery 的子元素过滤选择器
- mongodb存取图片文件功能
- 【面试真题】华为2013至2015最全-嵌入式软件(附答案)
- WebView使用中js调用java代码时targetSdkVersion大于17时,无法调用成功
- Codeforces Round #105 (Div. 2) C. Terse princess
- window下mysql配置MASTER/SLAVE模式
- noip1997 代数表达式 (模拟)
- Note1: Basic Text Processing
- SendFax过程分析
- NOIP2014 飞扬的小鸟 题解
- HDU 1087 Super Jumping! Jumping! Jumping!
- Error:duplicate files during packaging of APK /Users/text01/Desktop/Android错误信息的解决办法