Android WebView注入js中带有URL-encode字符时报错问题

来源:互联网 发布:java代码性能测试工具 编辑:程序博客网 时间:2024/05/16 08:17

在hybird-APP开发中,经常会用到的WebView.loadUrl("javascript:+js")的方式来向webview注入js。

在最近的项目中发现注入的js中带有部分已经经过Url encode过字符时,在某些机型上会注入的js运行会失败。

经过上网查找后发现在android4.4以上的版本,WebView.loadUrl会对的js进行一次url decode后再运行,故注入会报错。

google推荐方案是在android4.4以上版本使用新接口 evaluateJavascript 来注入js。


if (VERSION.SDK_INT >= VERSION_CODES.KITKAT) {    evaluateJavascript(js, null);} else {    loadUrl("javascript:" + js);}


参考:https://code.google.com/p/android/issues/detail?id=69969

0 0
原创粉丝点击