最新消息:文章中包含代码时,请遵守代码高亮规范!

原生APP中js怎样与Android和ios进行交互

JavaScript figer 3377浏览 0评论

下面所写的内容是站在h5工程师角度写的,至于Android和ios怎样与js进行交互,清Android和ios工程师分别参考http://www.111cn.net/sj/android/85626.htm和http://www.jianshu.com/p/df76cc7a395d

一、对于Android和ios我们要执行不同的操作,下面是判断系统的js代码

 
// alert(ismobile(1)); 1表示Android,0表示ios
function ismobile(test){
 var u = navigator.userAgent, app = navigator.appVersion;
 if(/AppleWebKit.*Mobile/i.test(navigator.userAgent) || (/MIDP|SymbianOS|NOKIA|SAMSUNG|LG|NEC|TCL|Alcatel|BIRD|DBTEL|Dopod|PHILIPS|HAIER|LENOVO|MOT-|Nokia|SonyEricsson|SIE-|Amoi|ZTE/.test(navigator.userAgent))){
 if(window.location.href.indexOf("?mobile")<0){
 try{
 if(/iPhone|mac|iPod|iPad/i.test(navigator.userAgent)){
 return '0';
 }else{
 return '1';
 }
 }catch(e){}
 }
 }else if( u.indexOf('iPad') > -1){
 return '0';
 }else{
 return '1';
 }
}

二、js调用app端函数,下面是js代码

if(ismobile(1)==1){
 Android.setTypeActivity(id,type,href);
 }else{
 jsToios(id,type,href);
 }

setTypeActivity是Android端定义的函数,jsToios是ios端定义的函数,括号里是js端传递的参数。

三、至于js端怎样获取app端的数据,只需在js端提供给app端函数名字,在通知app端调用即可

四、还有一种方法可以不通过app的方法将数据传递给另一个页面,那就是通过URL的方式

在本页面将数据拼接在ip后面

在另外一个页面通过下面方法获取URL后的参数

function GetRequest() { 
 var url = location.search; //获取url中"?"符后的字串 
 var theRequest = new Object(); 
 if (url.indexOf("?") != -1) { 
 var str = url.substr(1); 
 strs = str.split("&"); 
 for(var i = 0; i < strs.length; i ++) { 
 theRequest[strs[i].split("=")[0]]=decodeURIComponent(strs[i].split("=")[1]); 
 } 
 } 
 return theRequest; 
}
// 获取URL参数
var Request = new Object(); 
Request = GetRequest(); 
var name;
name = Request['name'];

刚开始做与app交互的HTML5时,有点不知所措,其实这种说明网上有很多资料,我现在专门站在前端的角度总结一下。

现在很多原生的app都会嵌入或多或少的HTML5页面,所以了解js怎样与原生app交互是必须的,至于怎样进行交互更能优化app的交互,那还需要不断的实践。

 

 

转载时请注明出处及相应链接,本文永久地址:http://blog.it985.com/16268.html


pay_weixin
pay_weixin
微信打赏
pay_weixin
支付宝打赏
感谢您对作者figer的打赏,我们会更加努力!    如果您想成为作者,请点我

您必须 登录 才能发表评论!