最近学习Html,需要调用传递数据到IOS和Android,写博客记录下~
1.判断设备是Android还是IOS
var browser = {
versions: function() {
var a = navigator.userAgent,
b = navigator.appVersion;
return {
trident: a.indexOf("Trident") > -1,
presto: a.indexOf("Presto") > -1,
webKit: a.indexOf("AppleWebKit") > -1,
gecko: a.indexOf("Gecko") > -1 && a.indexOf("KHTML") == -1,
mobile: !!a.match(/AppleWebKit.*Mobile.*/),
ios: !!a.match(/\(i[^;]+;( U;)? CPU.+Mac OS X/),
android: a.indexOf("Android") > -1 || a.indexOf("Linux") > -1,
iPhone: a.indexOf("iPhone") > -1,
iPad: a.indexOf("iPad") > -1,
webApp: a.indexOf("Safari") == -1
}
}(),
language: (navigator.browserLanguage || navigator.language).toLowerCase()
};
用法:
if (browser.versions.android) {
//Android
} else if (browser.versions.ios) {
//ios
}
2.调用Android的代码
Android这边相对IOS要简单很多,叫Android提供一个类名,方法名直接调用即可
//这里的Android全部都是Android程序猿给你里,叫他提供这两个调用就可以了
//data为传递过去的数据
Android.Android(data);
3.调用IOS的代码
function GoIos(data) {
var iframe = document.createElement("iframe");
var url = "myapp:";
url = url + "&data=" + data;
iframe.src = url;
iframe.style.display = 'none';
document.body.appendChild(iframe);
iframe.parentNode.removeChild(iframe);
iframe = null;
}
data为String数据,传递过去,IOS就会触发相应回调了
4.应用
//照上面的写法,代码应该如下
function GoToApp(data){
//只能传递字符串,如果是JSON,转成字符串
data = JSON.stringify(data);
if (browser.versions.android) {
//Android
Android.Android(data);
} else if (browser.versions.ios) {
//ios
GoIos(data);
}
}