Android与JS交互,json传参问题
一、JS调用Android的方法
JS调用安卓的方法,并且传递的参数为json格式的字符串(JSONObject.toString()),
例如: var json = {"name":"XJY","age":25",company":"CSII"};
直接将json作为参数传递:window.name.jsToClient(json);
Android获取的参数是不可用的,打印出来的是undefinded。
JS要这样处理,再作为参数传递给原生:
var jsonStr = JSON.stringify(json);
window.name.jsToClient(jsonStr);
这样Android才能接受到json的字符串。
二、Android调用JS的方法
错误的,这样JS是收不到Android传的参数的
try{
JSONObject jsonObject = new JSONObject();
jsonObject.put(“name”,“张三”);
jsonObject.put(“age”,“100”);
jsonObject.put(“password”,“123456”);
String call = “javascript:clientToJS(\“”+jsonObject.toStirng+“\”)”;
mWebView.loadUrl(call);
}catch(Exception e){
}
正确的,最简单就是拼接字符串
---------------------
作者:xjy5566
来源:CSDN
原文:https://blog.csdn.net/xjy5566/article/details/78607231
版权声明:本文为博主原创文章,转载请附上博文链接!
Android与JS交互,json传参问题的更多相关文章
- json传参应用
json传参应用 JSON(JavaScript Object Notation) 是一种轻量级的数据交换格式.JSON采用完全独立于语言的文本格式,这些特性使JSON成为理想的数据交换语言.易于人阅 ...
- js 不固定传参
js 不固定传参 CreationTime--2018年7月2日15点18分 Author:Marydon /** * 声明一个函数 * @explain 传参个数不确定 */ function ...
- ASP.NET WebAPI RC 竟然不支持最常用的json传参
壮士断腕(WCF Web API),为的是 ASP.NET Web API 的横空出世,再加上它的开放(开源),于是对之产生了一点点痴情,并写下了HttpClient + ASP.NET Web AP ...
- SpringBoot 处理 POST Json 传参枚举
在 Spring 框架中对枚举类型的序列化/反序列化是有限制的. 假设如下面这样在某些情况下就不能正常工作: 123456789 public enum PayChannelEnum implemen ...
- HttpClient调用doGet、doPost、JSON传参及获得返回值
调用 doPost:map传参 Map<String,Object> map = new HashMap<>(); map.put("test"," ...
- json传参 js前端和java后端 的简单例子
下面讲解了从前端js对象-->json字符串-->java字符串---->java map的过程 1,初始化js对象 var param = {}; param.krel = kre ...
- Android与js交互拍照上传资料
应用场景:h5通知android端拍照,选相册,然后将图片路径上传成功之后,获取到网络路径,将此路径返还给h5界面,并展示出来. android与js快速交互 效果图如下: 1.在Activity ...
- js函数动态传参
js函数体内可以通过arguments对象来接收传递进来的参数,利用这一对象属性可以动态传参. function box() { return arguments[0]+' | '+arguments ...
- Webview Android与js交互
Android 中可以通过webview来实现和js的交互,在程序中调用js代码,只需要将webview控件的支持js的属性设置为true Android(Java)与JavaScript(HTML) ...
随机推荐
- 让你在上司眼里“更靠谱”的六个建议
"勇于创新"是职场一大谎言 晋升选择题 你有两个下属,你想从他们中挑一个升职,你觉得哪一个更适合? 员工A: 优点:奉行"80%的精力维护20%的重要客户"的原 ...
- pymysql 1064, 'You have an error in your SQL syntax; check the manual that corresponds to
在python 连接mysql时,最近一直出现了 1064, 'You have an error in your SQL syntax; check the manual that correspo ...
- 有关linux中出现systemctl status network.service" and "journalctl -xe" for details.
Job for network.service failed because the control process exited with error code >**[root@mina0 ...
- 【问题】XShell连接不上Debian root用户
类似文章:https://www.lianst.com/3231.html 修改此文件 重启ssh服务 ssh restart有问题,换一条命令OK 你的Linux发行版可能不一样,针对CentOS参 ...
- k2系列-开发篇
上一篇讲到K2安装的具体操作,本篇我们具体讲一下在VS环境下如何开发K2工作流. 常用工具控件说明: 节点关联线:流程各节点之间的关联线 客户端节点:流程的基本元素 服务器端节点:流程的完成标识节点 ...
- java.lang.IllegalStateException: Cannot initialize context because there is already a root application context present
@Controller@ComponentScan@Configuration@EnableScheduling@EnableAutoConfiguration(exclude={DataSource ...
- 在linux中安装VM tools
step 1:虚拟机选择安装 Vmware tools ,在DVD中将.tar.gz的文件包拖到桌面中: step 2:打开终端,切换到桌面,cd /home/whoami/桌面 cd /home/u ...
- python3 Pandas
一.Pandas 1.Python Data Analysis Library 或 pandas 是基于NumPy 的一种工具,主要用于数据处理(数据整理,操作,存储,读取等) 2.http://pa ...
- vue-cli3 配置全局less 、sass 变量
之前在用vue-cli3框架的时候对于常用的less .sass 变量都是需要时就在单文件中引入文件,这样做比较麻烦.那么基于 vue-cli3 如何配置全局的less .sass 变量? <1 ...
- FormCollection使用
FormCollection用来在controller中获取页面表单元素的数据.它是表单元素的集合,包括<input type="submit" />元素. 用法举例: ...