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 相关文章推荐
JavaScript this 深入理解
Jul 30 Javascript
jQuery中的常用事件总结
Dec 27 Javascript
jquery清空表单数据示例分享
Feb 13 Javascript
Javascript控制div属性动态变化实例分析
Oct 08 Javascript
快速掌握WordPress中加载JavaScript脚本的方法
Dec 17 Javascript
JS中substring与substr的用法
Nov 16 Javascript
浅谈vue的iview列表table render函数设置DOM属性值的方法
Sep 30 Javascript
微信小程序实现列表下拉刷新上拉加载
Jul 29 Javascript
JS与CSS3实现图片响应鼠标移动放大效果示例
May 04 Javascript
vue根据值给予不同class的实例
Sep 29 Javascript
vue返回上一页面时回到原先滚动的位置的方法
Dec 20 Javascript
JS实现数据动态渲染的竖向步骤条
Jun 24 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字符串截取的简单方法
2013/07/04 PHP
php5.4以下版本json不支持不转义内容中文的解决方法
2015/01/13 PHP
实现PHP搜索加分页
2016/10/12 PHP
thinkPHP5.0框架引入Traits功能实例分析
2017/03/18 PHP
List Information About the Binary Files Used by an Application
2007/06/18 Javascript
利用JS重写Cognos右键菜单的实现代码
2010/04/11 Javascript
JavaScript在IE和Firefox(火狐)的不兼容问题解决方法小结
2010/04/13 Javascript
jquery星级插件、支持页面中多次使用
2012/03/25 Javascript
jQuery实现id模糊查询的小例子
2013/03/19 Javascript
jQuery 鼠标经过(hover)事件的延时处理示例
2014/04/14 Javascript
JavaScript实现文字跟随鼠标特效
2015/08/06 Javascript
理解和运用JavaScript的闭包机制
2015/08/13 Javascript
JavaScript脚本库编写的方法
2015/12/09 Javascript
动态创建按钮的JavaScript代码
2016/01/29 Javascript
JavaScript的==运算详解
2016/07/20 Javascript
node.js路径处理方法以及绝对路径详解
2021/03/04 Javascript
easyui messager alert 三秒后自动关闭提示的实例
2016/11/07 Javascript
解决Js先触发失去焦点事件再执行点击事件的问题
2018/08/30 Javascript
详解关于webpack多入口热加载很慢的原因
2019/04/24 Javascript
Echarts动态加载多条折线图的实现代码
2019/05/24 Javascript
vue中node_modules中第三方模块的修改使用详解
2019/05/31 Javascript
vue-cli基础配置及webpack配置修改的完整步骤
2019/10/20 Javascript
Python贪吃蛇游戏编写代码
2020/10/26 Python
Django模板变量如何传递给外部js调用的方法小结
2017/07/24 Python
Python多项式回归的实现方法
2019/03/11 Python
python2 中 unicode 和 str 之间的转换及与python3 str 的区别
2019/07/25 Python
tensor和numpy的互相转换的实现示例
2019/08/02 Python
Python利用逻辑回归分类实现模板
2020/02/15 Python
Python利用imshow制作自定义渐变填充柱状图(colorbar)
2020/12/10 Python
纯CSS实现菜单、导航栏的3D翻转动画效果
2014/04/23 HTML / CSS
HTML5移动端手机网站开发流程
2016/04/25 HTML / CSS
个人求职信范文分享
2013/12/13 职场文书
医药营销个人求职信范文
2014/02/07 职场文书
李敖北大演讲稿
2014/05/24 职场文书
工作失误检讨书(3篇)
2014/10/11 职场文书
关于JS中的作用域中的问题思考分享
2022/04/06 Javascript