H5交互中间处理函数
H5_TYPE(1:网页;2:AndroidWeb;3:iPhoneWeb;)
function jsToApp(h5_type,func_name,data){
data=((data!="" || parseInt(data) == 0) && typeof (data)!= "undefined")?data:"";
//安卓
if(h5_type=="2"){
switch(func_name){
case "navigationHidden":
window.mMallClient.navigationHidden();
break;
case "setTitle":
window.mMallClient.setTitle(data);
break;
case "closeWebView":
window.mMallClient.closeWebView();
break;
case "payPage":
var payment_code=getCookie('payment_code');
var balance=getCookie('balance');
window.mMallClient.payPage(data,payment_code,balance);
break;
case "loginPage":
window.mMallClient.loginPage();
break;
case "removeCurrentView":
window.mMallClient.removeCurrentView();
break;
case "phone":
window.mMallClient.phone(data);
break;
case "openHomeTab":
window.mMallClient.openHomeTab(data);
break;
case "goodsDetail":
if(_HTTP_APPVERSION_==undefined||_HTTP_APPVERSION_=='Android'){
window.mMallClient.goodsDetail(data[0],data[1]);
}else{
window.mMallClient.goodsDetail(data[0],data[1],data[2]);
}
break;
case "getLastUrl":
var last_url=window.mMallClient.getLastUrl();
return last_url;
break;
case "showUploadImg": //上传图片
var img_url=window.mMallClient.showUploadImg();
return img_url;
break;
}
}
//ios
if(h5_type=="3"){
switch(func_name){
case "payPage":
setupWebViewJavascriptBridge(function(bridge) {
bridge.registerHandler(func_name, function(data, responseCallback) {
console.log("JS Echo called with:", data);
responseCallback(data)
})
bridge.callHandler(func_name, {'orderid':data,'payType':getCookie('payment_code'),'balance':getCookie('balance')}, function responseCallback(responseData) {
console.log("JS received response:", responseData)
})
})
break;
case "phone":
setupWebViewJavascriptBridge(function(bridge) {
bridge.registerHandler(func_name, function(data, responseCallback) {
console.log("JS Echo called with:", data)
responseCallback(data)
})
bridge.callHandler(func_name, {'phone':data}, function responseCallback(responseData) {
console.log("JS received response:", responseData)
})
})
break;
case "openHomeTab":
setupWebViewJavascriptBridge(function(bridge) {
bridge.registerHandler(func_name, function(data, responseCallback) {
console.log("JS Echo called with:", data)
responseCallback(data)
})
bridge.callHandler(func_name, {'index':data}, function responseCallback(responseData) {
console.log("JS received response:", responseData)
})
})
break;
case "goodsDetail":
setupWebViewJavascriptBridge(function(bridge) {
bridge.registerHandler(func_name, function(data, responseCallback) {
console.log("JS Echo called with:", data)
responseCallback(data)
})
bridge.callHandler(func_name, {'goodsid':data[0],'goodsType':data[1],'buyStoreId':data[2]}, function responseCallback(responseData) {
console.log("JS received response:", responseData)
})
})
break;
case "removeCurrentView":
setupWebViewJavascriptBridge(function (bridge) {
bridge.registerHandler(func_name, function (data, responseCallback) {
console.log("JS Echo called with:", data)
responseCallback(data)
})
bridge.callHandler(func_name, {}, function responseCallback(responseData) {
console.log("JS received response:", responseData)
})
})
break;
case "getLastUrl":
setupWebViewJavascriptBridge(function(bridge) {
bridge.callHandler(func_name, {}, function responseCallback(responseData) {
console.log("JS received response:", responseData)
// mui.toast(responseData)
// setTimeout(function(){
// locationHref(responseData, data)
// },3000);
if(responseData!=null){
_IOS_LAST_URL_=responseData;
}
//locationHref(responseData, data)
})
})
break;
default :
setupWebViewJavascriptBridge(function(bridge) {
bridge.registerHandler(func_name, function(data, responseCallback) {
console.log("JS Echo called with:", data)
responseCallback(data)
})
bridge.callHandler(func_name, {'key':'value'}, function responseCallback(responseData) {
console.log("JS received response:", responseData)
})
})
break;
}
}
}