index.js
4.52 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
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
}
}