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 相关文章推荐
编写兼容IE和FireFox的脚本
May 18 Javascript
UpdatePanel和Jquery冲突的解决方法
Apr 01 Javascript
基于javascript实现图片左右切换效果
Jan 25 Javascript
mvc 、bootstrap 结合分布式图简单实现分页
Oct 10 Javascript
微信小程序 swiper组件轮播图详解及实例
Nov 16 Javascript
基于JavaScript实现轮播图原理及示例
Apr 10 Javascript
详解Angularjs在控制器(controller.js)中使用过滤器($filter)格式化日期/时间实例
Feb 17 Javascript
用户管理的设计_jquery的ajax实现二级联动效果
Jul 13 jQuery
Promise.all中对于reject的处理方法
Aug 01 Javascript
详解VS Code使用之Vue工程配置format代码格式化
Mar 20 Javascript
微信小程序事件对象中e.target和e.currentTarget的区别详解
May 08 Javascript
javaScript实现一个队列的方法
Jul 14 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和Mysqlweb应用开发核心技术 第1部分 Php基础-1 开始了解php
2011/07/03 PHP
解析php通过cookies获取远程网页的指定代码
2013/06/25 PHP
thinkphp3.2同时连接两个数据库的简单方法
2019/08/13 PHP
JavaScript写的一个DIV 弹出网页对话框
2009/08/14 Javascript
JQuery的一些小应用收集
2010/03/27 Javascript
javascript游戏开发之《三国志曹操传》零部件开发(四)用地图块拼成大地图
2013/01/23 Javascript
Jquery显示、隐藏元素以及添加删除样式
2013/08/09 Javascript
原生JavaScript实现连连看游戏(附源码)
2013/11/05 Javascript
js操作css属性实现div层展开关闭效果的方法
2015/05/11 Javascript
jQuery fadeOut 异步实例代码详解
2016/08/18 Javascript
使用Browserify来实现CommonJS的浏览器加载方法
2017/05/14 Javascript
详解探索 vuex 2.0 以及使用 vuejs 2.0 + vuex 2.0 构建记事本应用
2017/06/16 Javascript
使用mint-ui开发项目的一些心得(分享)
2017/09/07 Javascript
详解Webstorm 下的Angular2.0开发之路(图文)
2018/12/06 Javascript
简单了解vue 插值表达式Mustache
2020/07/22 Javascript
[01:47]2018年度DOTA2最具人气解说-完美盛典
2018/12/16 DOTA
PYTHON正则表达式 re模块使用说明
2011/05/19 Python
python基础教程之面向对象的一些概念
2014/08/29 Python
Python和perl实现批量对目录下电子书文件重命名的代码分享
2014/11/21 Python
python利用lxml读写xml格式的文件
2017/08/10 Python
python之mock模块基本使用方法详解
2019/06/27 Python
详解DeBug Python神级工具PySnooper
2019/07/03 Python
Python 图像处理: 生成二维高斯分布蒙版的实例
2019/07/04 Python
Python 使用list和tuple+条件判断详解
2019/07/30 Python
PYTHON如何读取和写入EXCEL里面的数据
2019/10/28 Python
python序列化与数据持久化实例详解
2019/12/20 Python
Html5 audio标签样式的修改
2016/01/28 HTML / CSS
世界上最受欢迎的花店:1-800-Flowers.com
2020/06/01 全球购物
Prototype如何更新局部页面
2013/03/03 面试题
社区服务活动总结
2014/05/07 职场文书
旅游文化节策划方案
2014/06/06 职场文书
大学生学雷锋活动总结
2014/06/26 职场文书
学生会竞选演讲稿学习部
2014/08/25 职场文书
大学生学习计划书
2014/09/15 职场文书
干部作风建设工作总结
2014/10/29 职场文书
前端使用svg图片改色实现示例
2022/07/23 HTML / CSS