JS调用Android、Ios原生控件


Posted in Javascript onJanuary 06, 2017

在上一篇博客(详解JS与APP原生控件交互)中已经和大家聊了,关于JS与Android、Ios原生控件之间相互通信的详细代码实现,今天我们一起聊一下JS调用Android、Ios通信的相同点和不同点,以便帮助我们在进行混合式开发时,提高代码质量,实现两者在网页端代码的统一。

首先我们先看一下Ios调用JS的方法实现:

//无参调用
function SwiftCallJs1(){}
//有参调用
function SwiftCallJs2(name, message){}

紧接着我们看一下Android调用JS的方法实现:

//无参调用
function AndroidCallJs1(){}
//有参调用
function AndroidCallJs2(data){}

从上面的代码中你是否发现,Android与Ios调用JS时,JS处理函数两者在无参调用时是相通的。有参调用不同点是Ios是一对一直接传递,Android则是字符串传递,当然我们可以通过在Android和Ios端统一传参使用JSON格式,JS支持JSON解析,从而实现两个平台在有参方法调用上的统一。

看完上面的Ios与Android调用JS,下面我们看一下JS调用Android与Ios原生通信的异同点。

首先我们看一下JS调用Android的方法实现:

//无参调用
function callNull(){
 android.CallNull(); 
}
//有参调用
function callMessage(){
 android.CallMessage("msg");
}
//有参调用--json
function callJson(){
 var json = "[{\"name\":\"满艺网\",\"url\":\"www.manyiaby.com\"}]";
 android.CallJson(json);
}

接下来我们看一下JS调用Ios的方法实现:

//一:无前缀调用
//无参调用
function test1(){
 Test1();
}
//有参调用
function test2(){
 Test2("满艺网","www.manyiaby.com");
}
//二:有前缀调用
//无参调用--带返回操作结果处理
function callSystem(){
 Ios.CallSystem();
}
//操作结果处理函数
function JSCallNullIosResult(){}
//有参调用
function callWithMsg(){
 Ios.CallWithMsg("满艺网","www.manyiaby.com");
}
//有参调用--json
function callWithJson(){
 var json = "{\"name\":\"满艺网\",\"url\":\"www.manyiaby.com\"}";
 Ios.CallWithJson(json);
}
//有参调用--带返回结果处理
function callWithJsonResult(){
 var json = "{\"name\":\"满艺网\",\"url\":\"www.manyiaby.com\"}";
 Ios.CallWithJsonResult(json);
}
function JSCallJsonIosResult(data){
 alert("name:"+data["name"]); 
}

看到这里你一定发现了不同点,1、Android没有不带前缀的方法调用,2、Android没有方法调用后的操作结果返回处理逻辑。对于第一点,就目前我所认识到的是原生没有通过具体的实现逻辑,不过这个点不影响我们的开发,因为Ios是支持前缀方法调用的。对于第二点,我的理解是对于返回处理函数,我们可以在开发的添加上去,从而提高Ios用户的使用体验,并且处理函数不会影响到方法的调用。

好了到这里就和大家聊完了,当然如果所述与您的理解有偏差,还望指点一二。

以上就是本文的全部内容,希望本文的内容对大家的学习或者工作能带来一定的帮助,同时也希望多多支持三水点靠木!

Javascript 相关文章推荐
让广告代码不再影响你的网页加载速度
Jul 07 Javascript
用jQuery扩展自写的 UI导航
Jan 13 Javascript
JQuery1.8 判断元素是否绑定事件的方法
Jul 10 Javascript
JS中跨页面调用变量和函数的方法(例如a.js 和 b.js中互相调用)
Nov 01 Javascript
浅谈javascript中的 “ && ” 和 “ || ”
Feb 02 Javascript
javascript 判断一个对象为数组的方法
May 03 Javascript
BootStrap 页签切换失效的解决方法
Aug 17 Javascript
JS和jQuery通过this获取html标签中的属性值(实例代码)
Sep 11 jQuery
Bootstrap Table中的多选框删除功能
Jul 15 Javascript
基于webpack4.X从零搭建React脚手架的方法步骤
Dec 23 Javascript
JS立即执行函数功能与用法分析
Jan 15 Javascript
vue中keep-alive、activated的探讨和使用详解
Jul 26 Javascript
JS正则匹配中文的方法示例
Jan 06 #Javascript
JS正则匹配URL网址的方法(可匹配www,http开头的一切网址)
Jan 06 #Javascript
JS获取多维数组中相同键的值实现方法示例
Jan 06 #Javascript
JavaScript用JSONP跨域请求数据实例详解
Jan 06 #Javascript
js实现前端分页页码管理
Jan 06 #Javascript
纯js实现倒计时功能
Jan 06 #Javascript
JS正则截取两个字符串之间及字符串前后内容的方法
Jan 06 #Javascript
You might like
php查看session内容的函数
2008/08/27 PHP
php自定义时间转换函数示例
2016/12/07 PHP
PHP PDO操作MySQL基础教程
2017/06/05 PHP
laravel 实现向公共模板中传值 (view composer)
2019/10/22 PHP
自写简单JS判断是否已经弹出页面
2010/10/20 Javascript
JS重要知识点小结
2011/11/06 Javascript
jQuery中andSelf()方法用法实例
2015/01/08 Javascript
js中动态创建json,动态为json添加属性、属性值的实例
2016/12/02 Javascript
详解vue父子模版嵌套案例
2017/03/04 Javascript
jQuery EasyUI 为Combo,Combobox添加清除值功能的实例
2017/04/13 jQuery
AngularJS双向绑定和依赖反转实例详解
2017/04/15 Javascript
详解react使用react-bootstrap当轮子造车
2017/08/15 Javascript
Vue.js与 ASP.NET Core 服务端渲染功能整合
2017/11/16 Javascript
基于input动态模糊查询的实现方法
2017/12/12 Javascript
vue 登录滑动验证实现代码
2018/08/24 Javascript
详解Nodejs get获取远程服务器接口数据
2019/03/26 NodeJs
[46:43]DOTA2上海特级锦标赛主赛事日 - 1 胜者组第一轮#2LGD VS MVP.Phx第二局
2016/03/02 DOTA
使用python编写脚本获取手机当前应用apk的信息
2014/07/21 Python
Django imgareaselect手动剪切头像实现方法
2015/05/26 Python
Django日志模块logging的配置详解
2017/02/14 Python
终于搞懂了Keras中multiloss的对应关系介绍
2020/06/22 Python
python中numpy.empty()函数实例讲解
2021/02/05 Python
html5使用canvas绘制太阳系效果
2014/12/15 HTML / CSS
Web时代变迁及html5与html4的区别
2016/01/06 HTML / CSS
Html5实现首页动态视频背景的示例代码
2019/09/25 HTML / CSS
Volcom法国官网:美国冲浪滑板品牌
2017/05/25 全球购物
家得宝墨西哥官网:The Home Depot墨西哥
2019/11/18 全球购物
浅谈react路由传参的几种方式
2021/03/23 Javascript
行政办公室岗位职责
2014/03/18 职场文书
保护环境演讲稿
2014/05/10 职场文书
小学阳光体育活动总结
2014/07/05 职场文书
工程承包协议书范本
2014/09/29 职场文书
出纳工作检讨书范文
2014/12/27 职场文书
博士论文答辩开场白
2015/06/01 职场文书
正则表达式基础与常用验证表达式
2022/06/16 Javascript
js 实现Material UI点击涟漪效果示例
2022/09/23 Javascript