eapp
Version:
447 lines (426 loc) • 11.7 kB
JavaScript
Ibox("IEappApi.moco", function (iboxLoad, exports, ibox) {
// 引用父类IEappApi
var IEappApi = iboxLoad('IEappApi');
// 工具类
var utils = Ibox.utils;
/**
* 根据变量名获取变量值
* @param keyName
* @returns {any}
*/
exports.getValueByKey = function (keyName) {
log("getValueByKey", keyName);
return "moco_value_" + keyName;
};
/**
* 从相机获取照片
* @param quality
* @param successCallBack
* @param failCallBack
*/
exports.takePhotoFromCamera = function (quality, successCallBack, failCallBack, wrapId) {
log("takePhotoFromCamera", "quality:" + quality);
var inputDomId = 'id_input_' + wrapId;
var inputDom = document.getElementById(inputDomId);
// 动态添加input标签
if (!inputDom) {
var ipt = document.createElement("input");
ipt.type = "file";
ipt.style.display = "none";
ipt.id = inputDomId;
ipt.accept = "image/*";
ipt.onchange = function(){
getPhotoBase64ByDomId(inputDomId, function (base64Data) {
successCallBack && successCallBack(base64Data);
}, function (error) {
failCallBack && failCallBack(error);
});
};
ipt.multiple = true;
document.body.appendChild(ipt);
document.getElementById(inputDomId).click();
}else{
inputDom.click();
}
};
/**
* 从相册获取照片
* @param quality
* @param successCallBack
* @param failCallBack
*/
exports.takePhotoFromAlbum = function (quality, successCallBack, failCallBack, wrapId) {
log("takePhotoFromAlbum", quality);
exports.takePhotoFromCamera(quality, successCallBack, failCallBack, wrapId);
};
/**
* 获取照片
* @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);
var data = {
text: "模拟的扫码字符串",
format: "qrcode",
cancelled: false
};
log("takeScan--data-->", data);
successCallBack && successCallBack(data);
};
/**
* 以window的方式打开第三方Url,以兼顾ios的无法返回
* @param url
*/
exports.goThirdUrl = function (url) {
log("goThirdUrl", url);
window.location.href = 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 () {
return {};
};
/**
* 检查权限
* @param permission
* @param okCB
* @param errorCB
*/
exports.checkPermission = function (permission, okCB, errorCB) {
log("checkPermission");
okCB && okCB();
};
/**
* 申请权限
* @param permissions
* @param okCB
* @param errorCB
*/
exports.requestPermissions = function (permissions, okCB, errorCB) {
log("requestPermissions");
okCB && okCB();
};
/**
* 检查是否有写入权限
* @param successCallBack
* @param failCallBack
*/
exports.requestWriteStorage = function (okCB, errCB) {
log("requestWriteStorage");
okCB && okCB();
};
/**
* 检查和申请权限
* @param perminssion
* @param okCB
* @param errCB
*/
exports.checkAndRequestPermission = function (perminssion, okCB, errCB) {
log("checkAndRequestPermission");
okCB && okCB();
};
/**
* 创建、下载、安装apk
* @param apkUrl
*/
exports.downloadAndInstallApk = function (apkUrl, callBack) {
log("downloadAndInstallApk", apkUrl);
callBack({status:200});
var progress = 0;
var interval = setInterval(function () {
progress += 10;
if (progress === 100) {
clearInterval(interval);
callBack({status:202});
exports.installApk("xxx.apk");
}else{
callBack({status:201,progress:progress});
}
}, 300)
};
/**
* 退出应用程序(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");
var ver = {
code: "¥{{appVersionCode}}¥",
version: "¥{{appVersion}}¥",
};
callback(ver);
};
/**
* 下载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");
};
/**
* 开始语音听写
* @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);
};
/**
* 进入新的App页面
* @param url
* @param options
* @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");
};
var ready = false;
/**
* 是否准备好了
* @returns {boolean}
*/
exports.isReady = function () {
return ready;
};
/**
* 获取缓存值
* @returns {{}}
*/
exports.getValueFromApp = function(success,error,params){
log("getValueFromApp");
};
// 打印
function log(method, obj) {
utils.showWarnLog("moco--模拟实现方法--->" + method + "", obj);
}
function getPhotoBase64ByDomId(inputDomId, okCB, noCB) {
var thisInput = document.getElementById(inputDomId);
if(!thisInput) return;
for (var index = 0; index < thisInput.files.length; index++) {
/** 压缩图片 */
lrz(thisInput.files[index], {
width: 720,//设置压缩参数
height: 1080,
crop: true,
quality: 60,
preserve_header: false
}).then(function (rst) {
utils.showWarnLog("---图片压缩后转为base64--->" + rst.base64);
// utils.showLog("---图片名称--->" + rst.origin.name);
var name = rst.origin.name;
var base64str = rst.base64;
if(okCB){
okCB(base64str);
}
}).catch(function (err) {
utils.showErrorLog("js上传图片失败--->", err);
if(noCB){
noCB(err);
}
}).always(function () {
/* 必然执行 */
});
}
}
setTimeout(function () {
// debugger;
ready = true;
var readyArr = IEappApi.eventListeners.EappReady;
for (var i = 0; i < readyArr.length; i++) {
readyArr[i]();
}
log("EappReady");
}, 300);
});