import { JSEncrypt } from 'jsencrypt' var g_wakelock = null export const encryptWithRsa = (string) => { let encrypt = new JSEncrypt() let key = window.eipRSAPublicKey if (!key) { key = 'MIGfMA0GCSqGSIb3DQEBAQUAA4GNADCBiQKBgQCMnhQ99yP-eEU2jXdQWc6j-wWbqNLqOLinEGBY11WJUCmzHiEycDXPc6-3YMOvrdAiHZcjkMCzU_eRnBLUqkcNw9nhQrCak-sTpEVlAV21LskD6KMf-6PsfttUvpXeCO5g3Hg48F_vbLKxb8s_lcvQgCpKBIpsUdYRcp_PgSg8BQIDAQAB' } encrypt.setPublicKey(key) return encrypt.encrypt(string) } //获取app系统更新[是否手动点击获取更新] export function appUpdate(ismanual) { if (window.plus) { plus.runtime.getProperty(plus.runtime.appid, function (inf) { let ver = inf.version var oarrays = ver.split('.') $.ajax({ dataType: 'json', url: window.appConfig.versionUrl, type: 'get', success: function (data) { if (data.state) { var narrays = data.value.split('.') var isNeed = false if (narrays[0] > oarrays[0]) { isNeed = true } else if (narrays[0] == oarrays[0] && narrays[1] > oarrays[1]) { isNeed = true } else if ( narrays[0] == oarrays[0] && narrays[1] == oarrays[1] && narrays[2] > oarrays[2] ) { isNeed = true } if (isNeed) { var _msg = '发现新版本:V' + data.value var bts = ['立即更新', '取消'] plus.nativeUI.confirm( _msg, function (e) { if (e.index == 0) { plus.nativeUI.toast('正在准备环境,请稍后!') var dtask = plus.downloader.createDownload( window.appConfig.apkUrl, {}, function (d, status) { if (status == 200) { var path = d.filename //下载apk plus.runtime.install(path) // 自动安装apk文件 } else { plus.nativeUI.alert('版本更新失败:' + status) } } ) dtask.start() } }, '更新提示', bts ) } else if (ismanual) { plus.nativeUI.toast('当前版本号已是最新') } } else { if (ismanual) { plus.nativeUI.toast('当前版本号已是最新') } return } }, error: function (xhr, type, errerThrown) { if (ismanual) { plus.nativeUI.toast('网络异常,请稍候再试') } }, }) }) } } /** * 对象转url参数 * @param {*} data * @param {*} isPrefix */ export function queryParams(data, isPrefix = false) { let prefix = isPrefix ? '?' : '' let _result = [] for (let key in data) { let value = data[key] // 去掉为空的参数 if (['', undefined, null].includes(value)) { continue } if (value.constructor === Array) { value.forEach((_value) => { _result.push( encodeURIComponent(key) + '[]=' + encodeURIComponent(_value) ) }) } else { _result.push(encodeURIComponent(key) + '=' + encodeURIComponent(value)) } } return _result.length ? prefix + _result.join('&') : '' } /** * *是否无效值 * @param {*} value */ export const isVoid = (value) => value === undefined || value === null || value === '' /** * *去除对象中的无效值 * @param {*} object * @return {*} */ export const validObject = (object) => { if (!object) { return {} } const result = { ...object } Object.keys(result).forEach((key) => { const value = result[key] if (isVoid(value)) { delete result[key] } }) return result } export function wakeLock() { //允许程序后台运行 //Android if (window.plus) { var main = plus.android.runtimeMainActivity() var Context = plus.android.importClass('android.content.Context') var PowerManager = plus.android.importClass('android.os.PowerManager') var pm = main.getSystemService(Context.POWER_SERVICE) g_wakelock = pm.newWakeLock(PowerManager.PARTIAL_WAKE_LOCK, 'ANY_NAME') g_wakelock.acquire() } } export function releaseWakeLock() { //结束程序后台运行 if (g_wakelock != null && g_wakelock.isHeld()) { g_wakelock.release() g_wakelock = null } }