iis服务器助手广告广告
返回顶部
首页 > 资讯 > 移动开发 >Android webview与js交换JSON对象数据示例
  • 817
分享到

Android webview与js交换JSON对象数据示例

JSON示例数据webviewjsAndroid 2022-06-06 10:06:26 817人浏览 八月长安
摘要

最近几个项目的测试结果,Android无法主动通过调用 WEBview.loadUrl("javascript:"+callbackFunction+"('"+data+"')

最近几个项目测试结果,Android无法主动通过调用
WEBview.loadUrl("javascript:"+callbackFunction+"('"+data+"')"); 这种方式将JSONobject类型的data传给js,因为js那边得到就是一个string的对象。
与此同时,js主动调用android的对象方式,android也无法返回给js一个jsonobject,需要js做一下转换,例如:
Android 代码:
代码如下:
WebView mWebView = (WebView) this.findViewById(R.id.webview);
WebSettings settings = mWebView.getSettings();
settings.setJavaScriptEnabled(true);
settings.setPluginsEnabled(true);
settings.setAllowFileAccess(true);
settings.setCacheMode(WebSettings.LOAD_NO_CACHE);
mWebView.setScrollBarStyle(View.SCROLLBARS_INSIDE_OVERLAY);//不加上,会显示白边
String url="file:///android_asset/t.html"; //js代码卸载t.html里
NavigationInstance navigation =new NavigationInstance(this);
mWebView.addJavascriptInterface(navigation, "Navigation");

NavigationInstance里的代码:
代码如下:
@Override
public JSONObject GetManeuverInfo() {
try{
JSONObject test=new JSONObject();
test.put("maomao", "value");
return test;
//return new JSONObject(bean.ManeuverInfo);
}catch(Exception e){
Log.e(TAG, "",e);
}
return null;
}

t.html里的代码:
代码如下:
function testapi(el){
console.log("---------testAPI---------");
eval("var obj = "+Navigation.GetManeuverInfo());
alert('typeof:'+typeof(obj));
alert('maomao:'+obj.maomao);
alert('obj:'+obj);
}

如果直接写成 Navigation.GetManeuverInfo.maomao是会提示undefined,因为js那边只得到了一个string对象而已,它不知道maomao是个key。
通过eval将其转化成表达式就可以调用obj.maomao得到value。
在此ps一下iOS,貌似人家支持webview很好,js可以直接获取到json对象.
默认t.html加载会自动执行testAPI函数,结果如下:
您可能感兴趣的文章:Android中post请求传递json数据给服务端的实例Android WebView交互传递json字符串并解析的方法


--结束END--

本文标题: Android webview与js交换JSON对象数据示例

本文链接: https://www.lsjlt.com/news/27474.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

本篇文章演示代码以及资料文档资料下载

下载Word文档到电脑,方便收藏和打印~

下载Word文档
猜你喜欢
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作