index.js 4.52 KB
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
  }
}