您好,我是做webapp的开发的,最近遇到一个问题,就是js如何主动调用Android的方法并返回参数,想请问大神您知道怎么处理吗?
下面是我写的一些示例:
MGSD.Static.IOS = "iOS";
MGSD.Static.ANDROID = "android";
MGSD.exchange = function(value, funcname){
if(!MGSD.OS){//第一次需要初始化操作系统
var ua = navigator.userAgent.toLowerCase();
if(/iphone|ipad|ipod/.test(ua)){//ios
MGSD.OS = MGSD.Static.IOS;
}else if(/android/.test(ua)){
MGSD.OS = MGSD.Static.ANDROID;
}
}
if(!MGSD.OS){//非目标操作系统
throw new Error("\u975e\u76ee\u6807\u64cd\u4f5c\u7cfb\u7edf");
}else{
if(!funcname) funcname = "getParams";
/** 传递参数 */
if(MGSD.OS===MGSD.Static.IOS){//IOS系统
window.location.href = "objc://"+funcname+"_"+value;
}else{//安卓系统
window.androidfuncname;
};
};
};
funcname就是安卓和ios的实际方法,
然后在安卓和ios放来回调一个你的方法就可以了。
function callAndroidOrIos(value, funcname){
if(!funcname) funcname = "getParams";
var ua = navigator.userAgent.toLowerCase();
if(/iphone|ipad|ipod/.test(ua)){//ios系统
window.location.href = "objc://"+funcname+"_"+value;
}else if(/android/.test(ua)){//安卓系统
window.android[funcname](value);
}else{//非目标操作系统
throw new Error("\u975e\u76ee\u6807\u64cd\u4f5c\u7cfb\u7edf");
}
}
下面是我写的一些示例:
MGSD.Static.IOS = "iOS";
MGSD.Static.ANDROID = "android";
MGSD.exchange = function(value, funcname){
if(!MGSD.OS){//第一次需要初始化操作系统
var ua = navigator.userAgent.toLowerCase();
if(/iphone|ipad|ipod/.test(ua)){//ios
MGSD.OS = MGSD.Static.IOS;
}else if(/android/.test(ua)){
MGSD.OS = MGSD.Static.ANDROID;
}
}
if(!MGSD.OS){//非目标操作系统
throw new Error("\u975e\u76ee\u6807\u64cd\u4f5c\u7cfb\u7edf");
}else{
if(!funcname) funcname = "getParams";
/** 传递参数 */
if(MGSD.OS===MGSD.Static.IOS){//IOS系统
window.location.href = "objc://"+funcname+"_"+value;
}else{//安卓系统
window.androidfuncname;
};
};
};
funcname就是安卓和ios的实际方法,
然后在安卓和ios放来回调一个你的方法就可以了。
HBuilder和AppCan的官方文档有