APP 开发 和ios 安卓的交互大全
2017-09-22 15:39
543 查看
if(window.plus)
__plusReady();
else
document.addEventListener("plusready", __plusReady, false);
var huilianUtils = {};
(function(utils) {
var ua = navigator.userAgent.toLowerCase();
var isApp = ua.match(/yyband/i) == "yyband";
function getQueryString(name) {
var reg = new RegExp("(^|&)" + name + "=([^&]*)(&|$)");
var r = window.location.search.substr(1).match(reg);
if(r != null) return unescape(r[2]);
return null;
}
utils.getQueryString = getQueryString;
function setCookie(name, value) {
var Days = 30;
var exp = new Date();
exp.setTime(exp.getTime() + Days * 24 * 60 * 60 * 1000);
document.cookie = name + "=" + escape(value) + ";expires=" + exp.toGMTString() + ";path=/";
}
utils.setCookie = setCookie;
function getCookie(name) {
var arr, reg = new RegExp("(^| )" + name + "=([^;]*)(;|$)");
if(arr = document.cookie.match(reg))
return unescape(arr[2]);
else
return null;
}
utils.getCookie = getCookie;
utils.openUrlSync = function(url, webappid) {
var _url = url;
if(!(/^(file|http)/i.test(_url)))
_url = huilianConfig.htmlUrl + _url;
if(isApp) {
plus.bridge.execSync("yyband", "openUrlSync", [_url, webappid]);
} else {
window.location.href = _url;
}
};
utils.openRemoteUrl = function(url, webappid) {
var _url = huilianConfig.remoteUrl + url;
if(isApp) {
plus.bridge.execSync("yyband", "openUrlSync", [_url, webappid]);
} else {
window.location.href = _url;
}
};
utils.openUrl = function(url, webappid) {
var _url = url;
if(isApp) {
plus.bridge.execSync("yyband", "openUrlSync", [_url, webappid]);
} else {
window.location.href = _url;
}
};
utils.backSync = function() {
if(isApp) {
plus.bridge.execSync("yyband", "backSync", []);
} else {
history.go(-1);
}
};
utils.closeSync = function() {
if(isApp) {
plus.bridge.execSync("yyband", "closeSync", []);
}
};
utils.logoutSync = function() {
if(isApp) {
plus.bridge.execSync("yyband", "logoutSync", []);
} else {
}
};
utils.plan = function(actID,actStatus) {
if(isApp) {
plus.bridge.execSync("yyband", "plan", [actID,actStatus]);
} else {
}
};
utils.share = function(title, content, linkUrl, imageUrl, fnCallback) {
if(isApp) {
var callbackId = plus.bridge.callbackId(fnCallback);
plus.bridge.exec("yyband", "share", [callbackId, title, content, linkUrl, imageUrl]);
} else {
//todo: 判断是否微信, 使用微信分享相关业务
}
};
function getToken() {
var token = getQueryString("token");
if(token) {
setCookie("app_token", token);
} else {
token = getCookie("app_token");
if(!token) {
if(isApp) {
try {
token = plus.bridge.execSync("yyband", "getTokenSync");
} catch(e) {}
}
}
}
return token;
};
utils.getToken = getToken;
function __callApi(apiCommand, reqData, successCallback, errorCallback, method) {
if(!method)
method = 'post';
var __url = huilianConfig.apiUrl + apiCommand;
if(__url.indexOf("?") > 0)
__url += "&token=" + getToken();
else
__url += "?token=" + getToken();
$.ajax({
type: method,
url: __url,
data: reqData,
success: function(result, status, xhr) {
successCallback(result, status, xhr);
},
error: function(xhr, status, error) {
if(errorCallback) {
errorCallback(xhr, status, error);
}
}
});
}
utils.callApi = function(apiCommand, reqData, successCallback, errorCallback, method) {
if(isApp) {
if(window.plus) {
__callApi(apiCommand, reqData, successCallback, errorCallback, method);
} else {
document.addEventListener("plusready", function() {
__callApi(apiCommand, reqData, successCallback, errorCallback, method);
}, false);
}
} else {
__callApi(apiCommand, reqData, successCallback, errorCallback, method);
}
};
})(huilianUtils);
__plusReady();
else
document.addEventListener("plusready", __plusReady, false);
var huilianUtils = {};
(function(utils) {
var ua = navigator.userAgent.toLowerCase();
var isApp = ua.match(/yyband/i) == "yyband";
function getQueryString(name) {
var reg = new RegExp("(^|&)" + name + "=([^&]*)(&|$)");
var r = window.location.search.substr(1).match(reg);
if(r != null) return unescape(r[2]);
return null;
}
utils.getQueryString = getQueryString;
function setCookie(name, value) {
var Days = 30;
var exp = new Date();
exp.setTime(exp.getTime() + Days * 24 * 60 * 60 * 1000);
document.cookie = name + "=" + escape(value) + ";expires=" + exp.toGMTString() + ";path=/";
}
utils.setCookie = setCookie;
function getCookie(name) {
var arr, reg = new RegExp("(^| )" + name + "=([^;]*)(;|$)");
if(arr = document.cookie.match(reg))
return unescape(arr[2]);
else
return null;
}
utils.getCookie = getCookie;
utils.openUrlSync = function(url, webappid) {
var _url = url;
if(!(/^(file|http)/i.test(_url)))
_url = huilianConfig.htmlUrl + _url;
if(isApp) {
plus.bridge.execSync("yyband", "openUrlSync", [_url, webappid]);
} else {
window.location.href = _url;
}
};
utils.openRemoteUrl = function(url, webappid) {
var _url = huilianConfig.remoteUrl + url;
if(isApp) {
plus.bridge.execSync("yyband", "openUrlSync", [_url, webappid]);
} else {
window.location.href = _url;
}
};
utils.openUrl = function(url, webappid) {
var _url = url;
if(isApp) {
plus.bridge.execSync("yyband", "openUrlSync", [_url, webappid]);
} else {
window.location.href = _url;
}
};
utils.backSync = function() {
if(isApp) {
plus.bridge.execSync("yyband", "backSync", []);
} else {
history.go(-1);
}
};
utils.closeSync = function() {
if(isApp) {
plus.bridge.execSync("yyband", "closeSync", []);
}
};
utils.logoutSync = function() {
if(isApp) {
plus.bridge.execSync("yyband", "logoutSync", []);
} else {
}
};
utils.plan = function(actID,actStatus) {
if(isApp) {
plus.bridge.execSync("yyband", "plan", [actID,actStatus]);
} else {
}
};
utils.share = function(title, content, linkUrl, imageUrl, fnCallback) {
if(isApp) {
var callbackId = plus.bridge.callbackId(fnCallback);
plus.bridge.exec("yyband", "share", [callbackId, title, content, linkUrl, imageUrl]);
} else {
//todo: 判断是否微信, 使用微信分享相关业务
}
};
function getToken() {
var token = getQueryString("token");
if(token) {
setCookie("app_token", token);
} else {
token = getCookie("app_token");
if(!token) {
if(isApp) {
try {
token = plus.bridge.execSync("yyband", "getTokenSync");
} catch(e) {}
}
}
}
return token;
};
utils.getToken = getToken;
function __callApi(apiCommand, reqData, successCallback, errorCallback, method) {
if(!method)
method = 'post';
var __url = huilianConfig.apiUrl + apiCommand;
if(__url.indexOf("?") > 0)
__url += "&token=" + getToken();
else
__url += "?token=" + getToken();
$.ajax({
type: method,
url: __url,
data: reqData,
success: function(result, status, xhr) {
successCallback(result, status, xhr);
},
error: function(xhr, status, error) {
if(errorCallback) {
errorCallback(xhr, status, error);
}
}
});
}
utils.callApi = function(apiCommand, reqData, successCallback, errorCallback, method) {
if(isApp) {
if(window.plus) {
__callApi(apiCommand, reqData, successCallback, errorCallback, method);
} else {
document.addEventListener("plusready", function() {
__callApi(apiCommand, reqData, successCallback, errorCallback, method);
}, false);
}
} else {
__callApi(apiCommand, reqData, successCallback, errorCallback, method);
}
};
})(huilianUtils);
相关文章推荐
- 手机APP开发(安卓、IOS)logo图标在线生成工具上线啦。
- 手机APP开发(安卓、IOS)logo图标在线生成工具上线啦
- 开发 通过接口 app ios或者是安卓 app 一起用的注意事项
- [APP开发技巧] IOS和安卓自定义包名分享
- 【备忘】2017年最新React开发Native开发安卓与ios平台的GitHub App视频教程
- 广东家政APP开发安卓IOSapp开发手机APP开发
- [APP开发技巧] video标签在IOS和安卓上的非全屏自动播放
- 利用ASP开发Web应用——APP在安卓和IOS上的利益之争
- 广东共享APP开发安卓IOSapp开发手机APP开发
- 智能家居APP开发,智能穿戴APP开发,手机APP开发,IOS和安卓等软件项目开发
- 安卓和iOS移动APP开发设计应该考虑哪些问题
- 【iOS 开发】iOS 10.3 如何更换 app 图标
- iOS开发--已上架App的Crash信息定位、应对处理方式
- 【iOS-Android开发对比】 之 APP入口
- iOS蓝牙开发(三):App作为外设被连接的实现
- 详解iOS中多线程app开发的GCD队列的使用
- iOS App 引导页开发
- 献给初学iOS的小盆友们——微博app项目开发之五新特性界面