eapp
Version:
520 lines (494 loc) • 13.1 kB
JavaScript
Ibox("IEappApi", function (iboxLoad, exports, ibox) {
// 工具类
var utils = Ibox.utils;
/**
* 系统类型
*/
exports.OS = {
ANDROID: "android",
IOS: "ios",
PC: "pc",
UNKNOW: "unKnow"
};
/**
* app类型
*/
exports.APP = {
WECHAT: "wechat",
DINGTALK: "dingTalk",
EAPP: "eapp",
SYSBROWSER: "sysBrowser",
UNKNOW: "unKnow"
};
/**
* 运行的宿主环境
* @returns {string} wechat、dingTalk、eapp、unKnow
*/
exports.getAppType = function () {
var ua = window.navigator.userAgent;
// utils.showLog("ua-->" + ua);
var isWechat = ua.match(/MicroMessenger/i) == 'MicroMessenger';
if (isWechat) {
return exports.APP.WECHAT;
}
var isDingTalk = ua.indexOf('DingTalk') > -1;
if (isDingTalk) {
return exports.APP.DINGTALK;
}
var isEapp = ua.indexOf('Eapp') > -1;
if (isEapp) {
return exports.APP.EAPP;
}
return exports.APP.UNKNOW;
};
/**
* 运行系统
* @returns {string} android、ios、pc、unKnow
*/
exports.getOsType = function () {
var ua = window.navigator.userAgent;
var isAndroid = ua.indexOf('Android') > -1 || ua.indexOf('Adr') > -1; //android终端
if (isAndroid) {
return exports.OS.ANDROID;
}
var isiOS = !!ua.match(/\(i[^;]+;( U;)? CPU.+Mac OS X/); //ios终端
if (isiOS) {
return exports.OS.IOS;
}
var isPc = ua.indexOf('Windows') > -1;
if (isPc) {
return exports.OS.PC;
}
return exports.OS.UNKNOW;
};
exports.eventListeners = {
'EappReady': [],
'EappBack': [],
'EappNetWorkOnline': [],
'EappNetWorkOffLine': [],
'NetWork': []
};
/**
* 是否准备好了
* @returns {boolean}
*/
exports.isReady = function () {
return false;
};
exports.curOs = exports.getOsType();
exports.curApp = exports.getAppType();
// exports.curOs = exports.OS.IOS;
// exports.curApp = exports.APP.EAPP;
utils.showLog('OsType-->', exports.curOs + "; AppType-->" + exports.curApp);
/**
* 添加监听
* @param eventName
* @param listener
*/
exports.on = function (eventName, listener) {
// 只有android有返回事件
if (eventName == "EappBack" && exports.curOs != exports.OS.ANDROID) {
return;
}
if(!(eventName in exports.eventListeners)){
//utils.showLog("添加事件集合--->", eventName);
exports.eventListeners[eventName] = [];
}
// 重复添加
this.off(eventName, listener);
utils.showLog("iEappApi--on-->", eventName);
exports.eventListeners[eventName].push(listener);
};
exports.emit = function (eventName) {
log("emit", eventName);
var eventList = exports.eventListeners[eventName];
if(!eventList) return;
for (var i = eventList.length - 1; i >= 0; i--) {
eventList[i]();
}
};
exports.off = function (eventName, listener) {
// log("off", eventName);
var eventList = exports.eventListeners[eventName];
if(!eventList) return;
var item;
for (var i = eventList.length - 1; i >= 0; i--) {
item = eventList[i];
if(listener === item){
// 删除
eventList.splice(i, 1);
log("删除事件-->" + eventName, listener);
}
}
};
exports.clearEvent = function (eventName) {
var eventList = exports.eventListeners[eventName];
if(!eventList) return;
log("clearEvent", eventName);
exports.eventListeners[eventName] = [];
};
/**
* 根据变量名获取变量值
* @param keyName
* @returns {any}
*/
exports.getValueByKey = function (keyName) {
log("getValueByKey", keyName);
return "";
};
/**
* 从相机获取照片
* @param quality
* @param successCallBack
* @param failCallBack
*/
exports.takePhotoFromCamera = function (quality, successCallBack, failCallBack) {
log("takePhotoFromCamera", "" + quality);
};
/**
* 从相册获取照片
* @param quality
* @param successCallBack
* @param failCallBack
*/
exports.takePhotoFromAlbum = function (quality, successCallBack, failCallBack) {
log("takePhotoFromAlbum", quality);
};
/**
* 获取照片
* @param sourceType
*/
exports.takePhoto = function (sourceType, quality, successCallBack, failCallBack) {
log("takePhoto", sourceType);
};
/**
* 扫一扫
* @param params
* @param successCallBack
* @param failCallBack
*/
exports.takeScan = function (params, successCallBack, failCallBack) {
log("takeScan", params);
};
/**
* 以window的方式打开第三方Url,以兼顾ios的无法返回
* @param url
*/
exports.goThirdUrl = function (url) {
log("goThirdUrl", url);
};
/**
* 启动第三方应用
* @param packageName
*/
exports.startAPP = function (packageName,componentClass) {
log("startAPP", packageName,componentClass);
};
/**
* 跳转到ios升级安装页面
* @param iosUrl
*/
exports.goInstallIosPage = function (iosUrl) {
log("goInstallIosPage", iosUrl);
};
/**
* 获取权限
* @returns {*}
*/
exports.getPermissionApi = function () {
log("getPermissionApi");
return {};
};
/**
* 检查权限
* @param permission
* @param okCB
* @param errorCB
*/
exports.checkPermission = function (permission, okCB, errorCB) {
log("checkPermission", permission);
};
/**
* 申请权限
* @param permissions
* @param okCB
* @param errorCB
*/
exports.requestPermissions = function (permissions, okCB, errorCB) {
log("requestPermissions", permissions);
};
/**
* 检查是否有写入权限
* @param successCallBack
* @param failCallBack
*/
exports.requestWriteStorage = function (okCB, errCB) {
log("requestWriteStorage");
};
/**
* 检查和申请权限
* @param perminssion
* @param okCB
* @param errCB
*/
exports.checkAndRequestPermission = function (perminssion, okCB, errCB) {
log("checkAndRequestPermission", perminssion);
};
/**
* 创建、下载、安装apk
* @param apkUrl
*/
exports.downloadAndInstallApk = function (apkUrl, callBack) {
log("downloadAndInstallApk", apkUrl);
};
/**
* 退出应用程序(Android)
*/
exports.exitApp = function () {
log("exitApp");
};
/**
* 返回上一次浏览页面(Android)
*/
exports.goBack = function () {
log("goBack");
};
/**
* 清空浏览历史(Android)
*/
exports.clearHistory = function () {
log("clearHistory");
};
/**
* 清空程序的资源文件缓存(Android)
*/
exports.clearCache = function () {
log("clearCache");
};
/**
* 调用显示启动应用程序的背景图片
*/
exports.showSplash = function () {
log("showSplash");
};
/**
* 调用隐藏启动应用程序的背景图片
*/
exports.hideSplash = function () {
log("hideSplash");
};
/**
* 修改电池状态栏颜色
* @param color
* @param textColorFlag 0默认:白字配深色背景;1:黑字配白色背景
*/
exports.titleBarColor = function (color, textColorFlag) {
log("titleBarColor", color);
};
/**
* 设置电池栏字体颜色
* @param textColorFlag 0默认:白字配深色背景;1:黑字配白色背景
*/
exports.titleBarTextColor = function (textColorFlag) {
log("titleBarTextColor", textColorFlag);
};
/**
* 获取当前网络类型
* @returns {*}
*/
exports.getNetWorkType = function () {
log("getNetWorkType");
};
/**
* 设置APN
* @returns {*}
*/
exports.toSettingApn = function () {
log("toSettingApn");
};
/**
* 获取当前版本Version和Code
* @returns {Promise<any>}
*/
exports.getAppVersionNameAndCode = function (callback) {
log("getAppVersionNameAndCode");
};
/**
* 下载apk文件
* @param filePath
* @param apkUrl
*/
exports.downloadApk = function (filePath, apkUrl, callBack) {
log("downloadApk", apkUrl);
};
/**
* 发起系统安装界面
* @param apkUrl
*/
exports.installApk = function (apkUrl) {
log("installApk", apkUrl);
};
/**
* 下载文件
* @param filePath
* @param fileUrl
*/
exports.downloadFile = function (filePath, fileUrl, callBack) {
log("downloadFile", filePath);
};
/**
* 获取百度GPS坐标
*
*/
exports.getCurrentPosition = function (callback) {
log("getCurrentPosition");
};
/**
* 刷新页面
*/
exports.refreshPage = function () {
window.location.reload();
};
/**
* 开始语音听写
* @param success
* @param error
*/
exports.StartVoiceRecognizer = function (success, error, isShow, isPunc) {
log("StartVoiceRecognizer");
};
/**
* 停止语音听写
*/
exports.StopVoiceRecognizer = function () {
log("StopVoiceRecognizer");
};
/**
* 取消语音听写
*/
exports.CancelVoiceRecognizer = function () {
log("CancelVoiceRecognizer");
};
/**
* 开始语音朗读
* @param success
* @param error
*/
exports.StartSpeack = function (success, error, txt) {
log("StartSpeack", txt);
};
/**
* 暂停语音朗读
*/
exports.PauseSpeack = function () {
log("PauseSpeack");
};
/**
* 继续语音朗读
*/
exports.ResumeSpeack = function () {
log("ResumeSpeack");
};
/**
* 停止语音朗读
*/
exports.StopSpeack = function () {
log("StopSpeack");
};
/**
* HttpPost请求
*/
exports.HttpRequest = function (http_type, url, options, headers, success, error) {
log("HttpRequest", options);
};
/**
* 是否是android
* @returns {boolean}
*/
exports.isAndroid = function () {
return exports.curOs == exports.OS.ANDROID;
};
/**
* 是否是ios
* @returns {boolean}
*/
exports.isIos = function () {
return exports.curOs == exports.OS.IOS;
};
/**
* 是否运行在Eapp中
* @returns {boolean}
*/
exports.isInEapp = function () {
return exports.curApp == exports.APP.EAPP;
};
/**
* 是否运行在Wechat中
* @returns {boolean}
*/
exports.isInWechat = function () {
return exports.curApp == exports.APP.WECHAT;
};
/**
* 是否运行在dingTalk中
* @returns {boolean}
*/
exports.isInDingTalk = function () {
return exports.curApp == exports.APP.DINGTALK;
};
/**
* 进入新的App页面
* @param url
* @param options 'right'、'bottom'
* @param success
* @param error
*/
exports.goNewAppPage = function (url, options, success, error) {
log("goNewAppPage", url);
};
/**
* 退出App页面
* @param success
* @param error
*/
exports.exitAppPage = function (success, error) {
log("exitAppPage");
};
/**
* 启动第三方页面
* @param success
* @param error
*/
exports.openIosApp = function (success, error, params) {
log("openIosApp");
};
/**
* 获取支持的跳转的ios应用集合
* @param success
* @param error
* @param params
* @returns {module.exports.TYPE|{S_QQ, S_WEIXIN, S_TAOBAO, S_DIANPING, S_SINAWEIBO, S_WEICO, S_ALIPAY, S_DOUBAN, S_SINAVDISK, S_NTESOPEN, S_IMETITUAN, S_JDMOBLE, S_RENREN, S_WCC, S_WCCBYIHAODIAN, S_YDDICTPROAPP, S_ZHIHU, S_YOUKU, S_BAIDUMAP, S_iosamap}|*}
*/
exports.getIosAppList = function () {
log("getIosAppList");
return {};
};
/**
* 设置缓存值
* @returns {{}}
*/
exports.setValueForApp = function(success,error,params){
log("setValueForApp");
}
/**
* 获取缓存值
* @returns {{}}
*/
exports.getValueFromApp = function(success,error,params){
log("getValueFromApp");
}
// 打印
function log(method, obj) {
utils.showWarnLog("iEappApi--抽象调用方法" + method + "未实现----->", obj);
}
});