UNPKG

eapp

Version:
520 lines (494 loc) 13.1 kB
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); } });