一聚教程网:一个值得你收藏的教程网站

最新下载

热门教程

Javascript与Android和ios进行交互的例子

时间:2016-05-10 编辑:简简单单 来源:一聚教程网


一、对于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的交互,那还需要不断的实践。

热门栏目