@tarojs/taro-h5 3.3.16 → 3.3.17
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/index.cjs.js +5863 -8163
- package/dist/index.js +9044 -0
- package/dist/taroApis.js +1 -1
- package/package.json +9 -9
- package/src/api/ad/index.ts +5 -0
- package/src/api/ai/facial.ts +6 -0
- package/src/api/ai/index.ts +2 -0
- package/src/api/ai/visual.ts +4 -0
- package/src/api/alipay/index.ts +4 -0
- package/src/api/base/crypto.ts +4 -0
- package/src/api/base/debug.ts +5 -0
- package/src/api/base/index.ts +23 -0
- package/src/api/base/performance.ts +5 -0
- package/src/api/base/system/index.ts +2 -0
- package/src/api/base/system/info.ts +64 -0
- package/src/api/base/system/network.ts +70 -0
- package/src/api/base/update.ts +5 -0
- package/src/api/base/weapp/app-event.ts +19 -0
- package/src/api/base/weapp/life-cycle.ts +5 -0
- package/src/api/canvas/CanvasContext.ts +230 -0
- package/src/api/canvas/canvasGetImageData.ts +29 -0
- package/src/api/canvas/canvasPutImageData.ts +26 -0
- package/src/api/canvas/canvasToTempFilePath.ts +26 -0
- package/src/api/canvas/createCanvasContext.ts +20 -0
- package/src/api/canvas/{index.js → index.ts} +9 -3
- package/src/api/cloud/index.ts +27 -0
- package/src/api/data-analysis/index.ts +6 -0
- package/src/api/device/accelerometer.ts +89 -0
- package/src/api/device/accessibility.ts +4 -0
- package/src/api/device/battery.ts +5 -0
- package/src/api/device/bluetooth-ble.ts +19 -0
- package/src/api/device/bluetooth-peripheral.ts +6 -0
- package/src/api/device/bluetooth.ts +16 -0
- package/src/api/device/calendar.ts +5 -0
- package/src/api/device/clipboard.ts +67 -0
- package/src/api/device/compass.ts +74 -0
- package/src/api/device/contact.ts +5 -0
- package/src/api/device/crypto.ts +4 -0
- package/src/api/device/gyroscope.ts +7 -0
- package/src/api/device/iBeacon.ts +10 -0
- package/src/api/device/index.ts +22 -0
- package/src/api/device/keyboard.ts +7 -0
- package/src/api/device/memory.ts +5 -0
- package/src/api/device/motion.ts +92 -0
- package/src/api/device/nfc.ts +10 -0
- package/src/api/device/phone.ts +30 -0
- package/src/api/device/scan.ts +7 -0
- package/src/api/device/screen.ts +9 -0
- package/src/api/device/vibrate.ts +36 -0
- package/src/api/device/wifi.ts +13 -0
- package/src/api/ext/index.ts +5 -0
- package/src/api/files/index.ts +11 -0
- package/src/api/framework/index.ts +10 -0
- package/src/api/index.ts +25 -0
- package/src/api/location/chooseLocation.ts +106 -0
- package/src/api/location/index.ts +19 -0
- package/src/api/location/style.css +8 -8
- package/src/api/media/audio/index.ts +99 -0
- package/src/api/media/background-audio.ts +12 -0
- package/src/api/media/camera.ts +4 -0
- package/src/api/media/editor.ts +29 -0
- package/src/api/media/image/chooseImage.ts +80 -0
- package/src/api/{image → media/image}/getImageInfo.js +0 -0
- package/src/api/media/image/index.ts +13 -0
- package/src/api/{image → media/image}/previewImage.js +4 -0
- package/src/api/media/index.ts +13 -0
- package/src/api/media/live.ts +5 -0
- package/src/api/media/map.ts +4 -0
- package/src/api/media/media-recorder.ts +4 -0
- package/src/api/media/recorder.ts +6 -0
- package/src/api/media/video/index.ts +82 -0
- package/src/api/media/video-decoder.ts +4 -0
- package/src/api/media/video-processing.ts +4 -0
- package/src/api/media/voip.ts +17 -0
- package/src/api/navigate/index.ts +7 -0
- package/src/api/{fileTransfer/downloadFile.js → network/download.ts} +16 -25
- package/src/api/network/index.ts +7 -0
- package/src/api/network/mdns.ts +13 -0
- package/src/api/{request/index.js → network/request/index.ts} +9 -6
- package/src/api/network/tcp.ts +4 -0
- package/src/api/network/udp.ts +4 -0
- package/src/api/{fileTransfer/uploadFile.js → network/upload.ts} +28 -30
- package/src/api/{fileTransfer/utils.js → network/utils.ts} +0 -0
- package/src/api/{webSocket/index.js → network/websocket/index.ts} +49 -56
- package/src/api/{webSocket/socketTask.js → network/websocket/socketTask.ts} +16 -6
- package/src/api/open-api/account.ts +4 -0
- package/src/api/open-api/address.ts +4 -0
- package/src/api/open-api/authorize.ts +5 -0
- package/src/api/open-api/card.ts +5 -0
- package/src/api/open-api/channels-live.ts +9 -0
- package/src/api/open-api/customer-service.ts +4 -0
- package/src/api/open-api/facial.ts +7 -0
- package/src/api/open-api/favorites.ts +5 -0
- package/src/api/open-api/group.ts +4 -0
- package/src/api/open-api/index.ts +18 -0
- package/src/api/open-api/invoice.ts +5 -0
- package/src/api/open-api/license-plate.ts +4 -0
- package/src/api/open-api/login.ts +6 -0
- package/src/api/open-api/red-package.ts +4 -0
- package/src/api/open-api/settings.ts +5 -0
- package/src/api/open-api/soter.ts +6 -0
- package/src/api/open-api/subscribe-message.ts +4 -0
- package/src/api/open-api/user-info.ts +5 -0
- package/src/api/open-api/werun.ts +5 -0
- package/src/api/payment/index.ts +5 -0
- package/src/api/route/index.ts +10 -0
- package/src/api/share/index.ts +13 -0
- package/src/api/storage/background-fetch.ts +7 -0
- package/src/api/storage/index.ts +193 -0
- package/src/api/swan/index.ts +31 -0
- package/src/{taro/index.js → api/taro.ts} +133 -149
- package/src/api/{createAnimation/index.js → ui/animation/index.ts} +26 -14
- package/src/api/ui/background.ts +5 -0
- package/src/api/ui/custom-component.ts +4 -0
- package/src/api/ui/fonts.ts +4 -0
- package/src/api/ui/index.ts +12 -0
- package/src/api/ui/interaction/actionSheet.ts +212 -0
- package/src/api/{interactive/index.js → ui/interaction/index.ts} +102 -90
- package/src/api/ui/interaction/modal.ts +237 -0
- package/src/api/{interactive/toast.js → ui/interaction/toast.ts} +35 -33
- package/src/api/ui/menu.ts +4 -0
- package/src/api/ui/navigation-bar/index.ts +52 -0
- package/src/api/ui/pull-down-refresh.ts +32 -0
- package/src/api/{scroll/index.js → ui/scroll/index.ts} +16 -28
- package/src/api/ui/sticky.ts +4 -0
- package/src/api/ui/tab-bar.ts +326 -0
- package/src/api/ui/window.ts +37 -0
- package/src/api/utils/handler.ts +105 -0
- package/src/api/utils/{index.js → index.ts} +23 -86
- package/src/api/worker/index.ts +4 -0
- package/src/api/wxml/index.ts +9 -0
- package/src/api/{createSelectorQuery/index.js → wxml/selectorQuery.ts} +86 -59
- package/src/index.ts +6 -0
- package/src/types/api.d.ts +4 -0
- package/src/types/define.d.ts +2 -0
- package/{types → src/types}/index.d.ts +0 -0
- package/{types → src/types}/type.ts +1 -1
- package/src/api/accelerometer/index.js +0 -105
- package/src/api/audio/index.js +0 -137
- package/src/api/canvas/canvasGetImageData.js +0 -44
- package/src/api/canvas/canvasPutImageData.js +0 -45
- package/src/api/canvas/canvasToTempFilePath.js +0 -49
- package/src/api/canvas/createCanvasContext.js +0 -340
- package/src/api/clipboard/index.js +0 -113
- package/src/api/compass/index.js +0 -99
- package/src/api/deviceMotion/index.js +0 -105
- package/src/api/fileTransfer/index.js +0 -2
- package/src/api/image/chooseImage.js +0 -87
- package/src/api/image/index.js +0 -7
- package/src/api/index.js +0 -29
- package/src/api/interactive/actionSheet.js +0 -214
- package/src/api/interactive/modal.js +0 -256
- package/src/api/location/chooseLocation.js +0 -143
- package/src/api/location/index.js +0 -5
- package/src/api/navigationBar/index.js +0 -57
- package/src/api/open/index.js +0 -5
- package/src/api/others/index.js +0 -43
- package/src/api/pullDownRefresh/index.js +0 -51
- package/src/api/storage/index.js +0 -211
- package/src/api/system/index.js +0 -9
- package/src/api/system/info.js +0 -36
- package/src/api/system/network.js +0 -68
- package/src/api/tabBar/index.js +0 -402
- package/src/api/unsupportedApi/index.js +0 -278
- package/src/api/vibrate/index.js +0 -49
- package/src/api/video/index.js +0 -87
- package/src/api/window/index.js +0 -38
- package/src/index.cjs.js +0 -11
- package/src/index.js +0 -6
|
@@ -1,143 +0,0 @@
|
|
|
1
|
-
import './style.css'
|
|
2
|
-
|
|
3
|
-
function createLocaltionChooser (handler) {
|
|
4
|
-
const html = `
|
|
5
|
-
<div class='taro_chooselocation'>
|
|
6
|
-
<div class='taro_chooselocation_bar'>
|
|
7
|
-
<div class='taro_chooselocation_back'></div>
|
|
8
|
-
<p class='taro_chooselocation_title'>位置</p>
|
|
9
|
-
<button class='taro_chooselocation_submit'>完成</button>
|
|
10
|
-
</div>
|
|
11
|
-
<iframe class='taro_chooselocation_frame' frameborder='0' src='https://apis.map.qq.com/tools/locpicker?search=1&type=1&key=${LOCATION_APIKEY}&referer=myapp'></iframe>
|
|
12
|
-
</div>
|
|
13
|
-
`
|
|
14
|
-
const container = document.createElement('div')
|
|
15
|
-
container.innerHTML = html
|
|
16
|
-
const main = container.querySelector('.taro_chooselocation')
|
|
17
|
-
|
|
18
|
-
function show () {
|
|
19
|
-
setTimeout(() => {
|
|
20
|
-
main.style.top = '0'
|
|
21
|
-
})
|
|
22
|
-
}
|
|
23
|
-
|
|
24
|
-
function hide () {
|
|
25
|
-
main.style.top = '100%'
|
|
26
|
-
}
|
|
27
|
-
|
|
28
|
-
function back () {
|
|
29
|
-
handler({ errMsg: 'chooseLOcation:fail cancel' })
|
|
30
|
-
hide()
|
|
31
|
-
}
|
|
32
|
-
|
|
33
|
-
function submit () {
|
|
34
|
-
handler()
|
|
35
|
-
hide()
|
|
36
|
-
}
|
|
37
|
-
|
|
38
|
-
function remove () {
|
|
39
|
-
container.remove()
|
|
40
|
-
window.removeEventListener('popstate', back)
|
|
41
|
-
}
|
|
42
|
-
|
|
43
|
-
container.querySelector('.taro_chooselocation_back').addEventListener('click', back)
|
|
44
|
-
container.querySelector('.taro_chooselocation_submit').addEventListener('click', submit)
|
|
45
|
-
|
|
46
|
-
window.addEventListener('popstate', back)
|
|
47
|
-
|
|
48
|
-
return {
|
|
49
|
-
show,
|
|
50
|
-
remove,
|
|
51
|
-
container
|
|
52
|
-
}
|
|
53
|
-
}
|
|
54
|
-
|
|
55
|
-
/**
|
|
56
|
-
* @typedef {Object} OriginalLocationObject
|
|
57
|
-
* @property {string} module
|
|
58
|
-
* @property {{ lat: number, lng: number }} latlng
|
|
59
|
-
* @property {string} poiaddress
|
|
60
|
-
* @property {string} poiname
|
|
61
|
-
* @property {string} cityname
|
|
62
|
-
*/
|
|
63
|
-
|
|
64
|
-
/**
|
|
65
|
-
* @typedef {Object} LocationObject
|
|
66
|
-
* @property {string} errMsg 信息
|
|
67
|
-
* @property {string} name 位置名称
|
|
68
|
-
* @property {string} address 详细地址
|
|
69
|
-
* @property {string} latitude 纬度,浮点数,范围为-90~90,负数表示南纬。使用 gcj02 国测局坐标系
|
|
70
|
-
* @property {string} longitude 经度,浮点数,范围为-180~180,负数表示西经。使用 gcj02 国测局坐标系
|
|
71
|
-
*/
|
|
72
|
-
|
|
73
|
-
/**
|
|
74
|
-
* 打开地图选择位置。
|
|
75
|
-
* @param {Object} object 参数
|
|
76
|
-
* @param {(obj: LocationObject) => void} [object.success] 接口调用成功的回调函数
|
|
77
|
-
* @param {Function} [object.fail] 接口调用失败的回调函数
|
|
78
|
-
* @param {Function} [object.complete] 接口调用结束的回调函数(调用成功、失败都会执行)
|
|
79
|
-
*/
|
|
80
|
-
const chooseLocation = ({ success, fail, complete } = {}) => {
|
|
81
|
-
return new Promise((resolve, reject) => {
|
|
82
|
-
const choosenLocation = {}
|
|
83
|
-
const onSuccess = res => {
|
|
84
|
-
success && success(res)
|
|
85
|
-
complete && complete(res)
|
|
86
|
-
resolve(res)
|
|
87
|
-
}
|
|
88
|
-
const onError = res => {
|
|
89
|
-
fail && fail(res)
|
|
90
|
-
complete && complete(res)
|
|
91
|
-
reject(res)
|
|
92
|
-
}
|
|
93
|
-
|
|
94
|
-
// eslint-disable-next-line
|
|
95
|
-
if (!LOCATION_APIKEY) {
|
|
96
|
-
const errMsg = 'chooseLocation:fail LOCATION_APIKEY needed'
|
|
97
|
-
console.warn('chooseLocation api 依赖腾讯地图定位api,需要在defineConstants中配置LOCATION_APIKEY')
|
|
98
|
-
return onError({ errMsg })
|
|
99
|
-
}
|
|
100
|
-
|
|
101
|
-
const onMessage = event => {
|
|
102
|
-
// 接收位置信息,用户选择确认位置点后选点组件会触发该事件,回传用户的位置信息
|
|
103
|
-
/** @type {OriginalLocationObject} */
|
|
104
|
-
const loc = event.data
|
|
105
|
-
|
|
106
|
-
// 防止其他应用也会向该页面post信息,需判断module是否为'locationPicker'
|
|
107
|
-
if (!loc || loc.module !== 'locationPicker') return
|
|
108
|
-
|
|
109
|
-
choosenLocation.name = loc.poiname
|
|
110
|
-
choosenLocation.address = loc.poiaddress
|
|
111
|
-
choosenLocation.latitude = loc.latlng.lat
|
|
112
|
-
choosenLocation.longitude = loc.latlng.lng
|
|
113
|
-
}
|
|
114
|
-
|
|
115
|
-
const chooser = createLocaltionChooser(res => {
|
|
116
|
-
if (res) {
|
|
117
|
-
onError(res)
|
|
118
|
-
} else {
|
|
119
|
-
if (choosenLocation.latitude && choosenLocation.longitude) {
|
|
120
|
-
onSuccess({
|
|
121
|
-
errMsg: 'chooseLocation:ok',
|
|
122
|
-
...choosenLocation
|
|
123
|
-
})
|
|
124
|
-
} else {
|
|
125
|
-
onError({
|
|
126
|
-
errMsg: 'chooseLocation:fail'
|
|
127
|
-
})
|
|
128
|
-
}
|
|
129
|
-
}
|
|
130
|
-
window.removeEventListener('message', onMessage, false)
|
|
131
|
-
setTimeout(() => {
|
|
132
|
-
chooser.remove()
|
|
133
|
-
}, 300)
|
|
134
|
-
})
|
|
135
|
-
|
|
136
|
-
document.body.appendChild(chooser.container)
|
|
137
|
-
|
|
138
|
-
window.addEventListener('message', onMessage, false)
|
|
139
|
-
chooser.show()
|
|
140
|
-
})
|
|
141
|
-
}
|
|
142
|
-
|
|
143
|
-
export default chooseLocation
|
|
@@ -1,57 +0,0 @@
|
|
|
1
|
-
import { shouldBeObject, getParameterError } from '../utils'
|
|
2
|
-
|
|
3
|
-
export function setNavigationBarTitle (options) {
|
|
4
|
-
// options must be an Object
|
|
5
|
-
const isObject = shouldBeObject(options)
|
|
6
|
-
if (!isObject.res) {
|
|
7
|
-
const res = { errMsg: `setNavigationBarTitle${isObject.msg}` }
|
|
8
|
-
console.error(res.errMsg)
|
|
9
|
-
return Promise.reject(res)
|
|
10
|
-
}
|
|
11
|
-
|
|
12
|
-
const { title, success, fail, complete } = options
|
|
13
|
-
const res = { errMsg: 'setNavigationBarTitle:ok' }
|
|
14
|
-
|
|
15
|
-
if (!title || typeof title !== 'string') {
|
|
16
|
-
res.errMsg = getParameterError({
|
|
17
|
-
name: 'setNavigationBarTitle',
|
|
18
|
-
para: 'title',
|
|
19
|
-
correct: 'String',
|
|
20
|
-
wrong: title
|
|
21
|
-
})
|
|
22
|
-
console.error(res.errMsg)
|
|
23
|
-
typeof fail === 'function' && fail(res)
|
|
24
|
-
typeof complete === 'function' && complete(res)
|
|
25
|
-
return Promise.reject(res)
|
|
26
|
-
}
|
|
27
|
-
|
|
28
|
-
if (document.title !== title) {
|
|
29
|
-
document.title = title
|
|
30
|
-
}
|
|
31
|
-
|
|
32
|
-
typeof success === 'function' && success(res)
|
|
33
|
-
typeof complete === 'function' && complete(res)
|
|
34
|
-
|
|
35
|
-
return Promise.resolve(res)
|
|
36
|
-
}
|
|
37
|
-
|
|
38
|
-
/**
|
|
39
|
-
* @typedef {Object} NavigationBarColorParam
|
|
40
|
-
* @property {string} frontColor 前景颜色值,包括按钮、标题、状态栏的颜色,仅支持 #ffffff 和 #000000
|
|
41
|
-
* @property {string} backgroundColor 背景颜色值,有效值为十六进制颜色
|
|
42
|
-
* @property {{duration: number, timingFunc: string}} animation 动画效果
|
|
43
|
-
* @property {function} [success] 接口调用成功的回调函数
|
|
44
|
-
* @property {function} [fail] 接口调用失败的回调函数
|
|
45
|
-
* @property {function} [complete] 接口调用结束的回调函数(调用成功、失败都会执行)
|
|
46
|
-
*/
|
|
47
|
-
|
|
48
|
-
/**
|
|
49
|
-
* 设置页面导航条颜色
|
|
50
|
-
* @param {NavigationBarColorParam} options
|
|
51
|
-
*/
|
|
52
|
-
export function setNavigationBarColor (options) {
|
|
53
|
-
const meta = document.createElement('meta')
|
|
54
|
-
meta.setAttribute('name', 'theme-color')
|
|
55
|
-
meta.setAttribute('content', options.backgroundColor)
|
|
56
|
-
document.head.appendChild(meta)
|
|
57
|
-
}
|
package/src/api/open/index.js
DELETED
package/src/api/others/index.js
DELETED
|
@@ -1,43 +0,0 @@
|
|
|
1
|
-
import { fromByteArray, toByteArray } from 'base64-js'
|
|
2
|
-
import { shouldBeObject, getParameterError } from '../utils'
|
|
3
|
-
|
|
4
|
-
export function arrayBufferToBase64 (arrayBuffer) {
|
|
5
|
-
return fromByteArray(arrayBuffer)
|
|
6
|
-
}
|
|
7
|
-
|
|
8
|
-
export function base64ToArrayBuffer (base64) {
|
|
9
|
-
return toByteArray(base64)
|
|
10
|
-
}
|
|
11
|
-
|
|
12
|
-
export function makePhoneCall (options) {
|
|
13
|
-
// options must be an Object
|
|
14
|
-
const isObject = shouldBeObject(options)
|
|
15
|
-
if (!isObject.res) {
|
|
16
|
-
const res = { errMsg: `makePhoneCall${isObject.msg}` }
|
|
17
|
-
console.error(res.errMsg)
|
|
18
|
-
return Promise.reject(res)
|
|
19
|
-
}
|
|
20
|
-
|
|
21
|
-
const { phoneNumber, success, fail, complete } = options
|
|
22
|
-
const res = { errMsg: 'makePhoneCall:ok' }
|
|
23
|
-
|
|
24
|
-
if (typeof phoneNumber !== 'string') {
|
|
25
|
-
res.errMsg = getParameterError({
|
|
26
|
-
name: 'makePhoneCall',
|
|
27
|
-
para: 'phoneNumber',
|
|
28
|
-
correct: 'String',
|
|
29
|
-
wrong: phoneNumber
|
|
30
|
-
})
|
|
31
|
-
console.error(res.errMsg)
|
|
32
|
-
typeof fail === 'function' && fail(res)
|
|
33
|
-
typeof complete === 'function' && complete(res)
|
|
34
|
-
return Promise.reject(res)
|
|
35
|
-
}
|
|
36
|
-
|
|
37
|
-
window.location.href = `tel:${phoneNumber}`
|
|
38
|
-
|
|
39
|
-
typeof success === 'function' && success(res)
|
|
40
|
-
typeof complete === 'function' && complete(res)
|
|
41
|
-
|
|
42
|
-
return Promise.resolve(res)
|
|
43
|
-
}
|
|
@@ -1,51 +0,0 @@
|
|
|
1
|
-
import Taro from '@tarojs/api'
|
|
2
|
-
/**
|
|
3
|
-
* 开始下拉刷新。调用后触发下拉刷新动画,效果与用户手动下拉刷新一致。
|
|
4
|
-
* @param {Object} object 参数
|
|
5
|
-
*/
|
|
6
|
-
const startPullDownRefresh = function (object = {}) {
|
|
7
|
-
return new Promise((resolve, reject) => {
|
|
8
|
-
const { success, fail, complete } = object
|
|
9
|
-
const res = {}
|
|
10
|
-
Taro.eventCenter.trigger('__taroStartPullDownRefresh', {
|
|
11
|
-
successHandler: () => {
|
|
12
|
-
success && success(res)
|
|
13
|
-
complete && complete()
|
|
14
|
-
resolve(res)
|
|
15
|
-
},
|
|
16
|
-
errorHandler: () => {
|
|
17
|
-
fail && fail(res)
|
|
18
|
-
complete && complete()
|
|
19
|
-
reject(res)
|
|
20
|
-
}
|
|
21
|
-
})
|
|
22
|
-
})
|
|
23
|
-
}
|
|
24
|
-
|
|
25
|
-
/**
|
|
26
|
-
* 停止当前页面下拉刷新。
|
|
27
|
-
* @param {Object} object 参数
|
|
28
|
-
*/
|
|
29
|
-
const stopPullDownRefresh = function (object = {}) {
|
|
30
|
-
return new Promise((resolve, reject) => {
|
|
31
|
-
const { success, fail, complete } = object
|
|
32
|
-
const res = {}
|
|
33
|
-
Taro.eventCenter.trigger('__taroStopPullDownRefresh', {
|
|
34
|
-
successHandler: () => {
|
|
35
|
-
success && success(res)
|
|
36
|
-
complete && complete()
|
|
37
|
-
resolve(res)
|
|
38
|
-
},
|
|
39
|
-
errorHandler: () => {
|
|
40
|
-
fail && fail(res)
|
|
41
|
-
complete && complete()
|
|
42
|
-
reject(res)
|
|
43
|
-
}
|
|
44
|
-
})
|
|
45
|
-
})
|
|
46
|
-
}
|
|
47
|
-
|
|
48
|
-
export {
|
|
49
|
-
startPullDownRefresh,
|
|
50
|
-
stopPullDownRefresh
|
|
51
|
-
}
|
package/src/api/storage/index.js
DELETED
|
@@ -1,211 +0,0 @@
|
|
|
1
|
-
import { shouldBeObject, getParameterError } from '../utils'
|
|
2
|
-
|
|
3
|
-
function setStorage (options) {
|
|
4
|
-
// options must be an Object
|
|
5
|
-
const isObject = shouldBeObject(options)
|
|
6
|
-
if (!isObject.res) {
|
|
7
|
-
const res = { errMsg: `setStorage${isObject.msg}` }
|
|
8
|
-
console.error(res.errMsg)
|
|
9
|
-
return Promise.reject(res)
|
|
10
|
-
}
|
|
11
|
-
|
|
12
|
-
const { key, data, success, fail, complete } = options
|
|
13
|
-
const res = { errMsg: 'setStorage:ok' }
|
|
14
|
-
|
|
15
|
-
if (typeof key !== 'string') {
|
|
16
|
-
res.errMsg = getParameterError({
|
|
17
|
-
name: 'setStorage',
|
|
18
|
-
para: 'key',
|
|
19
|
-
correct: 'String',
|
|
20
|
-
wrong: key
|
|
21
|
-
})
|
|
22
|
-
console.error(res.errMsg)
|
|
23
|
-
typeof fail === 'function' && fail(res)
|
|
24
|
-
typeof complete === 'function' && complete(res)
|
|
25
|
-
return Promise.reject(res)
|
|
26
|
-
}
|
|
27
|
-
|
|
28
|
-
setStorageSync(key, data)
|
|
29
|
-
|
|
30
|
-
typeof success === 'function' && success(res)
|
|
31
|
-
typeof complete === 'function' && complete(res)
|
|
32
|
-
|
|
33
|
-
return Promise.resolve(res)
|
|
34
|
-
}
|
|
35
|
-
|
|
36
|
-
function setStorageSync (key, data = '') {
|
|
37
|
-
if (typeof key !== 'string') {
|
|
38
|
-
console.error(getParameterError({
|
|
39
|
-
name: 'setStorage',
|
|
40
|
-
correct: 'String',
|
|
41
|
-
wrong: key
|
|
42
|
-
}))
|
|
43
|
-
return
|
|
44
|
-
}
|
|
45
|
-
|
|
46
|
-
const type = typeof data
|
|
47
|
-
let obj = {}
|
|
48
|
-
|
|
49
|
-
if (type === 'symbol') {
|
|
50
|
-
obj = { data: '' }
|
|
51
|
-
} else {
|
|
52
|
-
obj = { data }
|
|
53
|
-
}
|
|
54
|
-
localStorage.setItem(key, JSON.stringify(obj))
|
|
55
|
-
}
|
|
56
|
-
|
|
57
|
-
function getStorage (options) {
|
|
58
|
-
// options must be an Object
|
|
59
|
-
const isObject = shouldBeObject(options)
|
|
60
|
-
if (!isObject.res) {
|
|
61
|
-
const res = { errMsg: `getStorage${isObject.msg}` }
|
|
62
|
-
console.error(res.errMsg)
|
|
63
|
-
return Promise.reject(res)
|
|
64
|
-
}
|
|
65
|
-
|
|
66
|
-
const { key, success, fail, complete } = options
|
|
67
|
-
const res = { errMsg: 'getStorage:ok' }
|
|
68
|
-
|
|
69
|
-
if (typeof key !== 'string') {
|
|
70
|
-
res.errMsg = getParameterError({
|
|
71
|
-
name: 'getStorage',
|
|
72
|
-
para: 'key',
|
|
73
|
-
correct: 'String',
|
|
74
|
-
wrong: key
|
|
75
|
-
})
|
|
76
|
-
console.error(res.errMsg)
|
|
77
|
-
typeof fail === 'function' && fail(res)
|
|
78
|
-
typeof complete === 'function' && complete(res)
|
|
79
|
-
return Promise.reject(res)
|
|
80
|
-
}
|
|
81
|
-
|
|
82
|
-
const { result, data } = getItem(key)
|
|
83
|
-
if (result) {
|
|
84
|
-
res.data = data
|
|
85
|
-
} else {
|
|
86
|
-
res.errMsg = 'getStorage:fail data not found'
|
|
87
|
-
typeof fail === 'function' && fail(res)
|
|
88
|
-
typeof complete === 'function' && complete(res)
|
|
89
|
-
return Promise.reject(res)
|
|
90
|
-
}
|
|
91
|
-
|
|
92
|
-
typeof success === 'function' && success(res)
|
|
93
|
-
typeof complete === 'function' && complete(res)
|
|
94
|
-
|
|
95
|
-
return Promise.resolve(res)
|
|
96
|
-
}
|
|
97
|
-
|
|
98
|
-
function getStorageSync (key) {
|
|
99
|
-
if (typeof key !== 'string') {
|
|
100
|
-
console.error(getParameterError({
|
|
101
|
-
name: 'getStorage',
|
|
102
|
-
correct: 'String',
|
|
103
|
-
wrong: key
|
|
104
|
-
}))
|
|
105
|
-
return
|
|
106
|
-
}
|
|
107
|
-
|
|
108
|
-
const res = getItem(key)
|
|
109
|
-
if (res.result) return res.data
|
|
110
|
-
|
|
111
|
-
return ''
|
|
112
|
-
}
|
|
113
|
-
|
|
114
|
-
function getItem (key) {
|
|
115
|
-
let item
|
|
116
|
-
try {
|
|
117
|
-
item = JSON.parse(localStorage.getItem(key))
|
|
118
|
-
} catch (e) {}
|
|
119
|
-
|
|
120
|
-
// 只返回使用 Taro.setStorage API 存储的数据
|
|
121
|
-
if (item && typeof item === 'object' && item.hasOwnProperty('data')) {
|
|
122
|
-
return { result: true, data: item.data }
|
|
123
|
-
} else {
|
|
124
|
-
return { result: false }
|
|
125
|
-
}
|
|
126
|
-
}
|
|
127
|
-
|
|
128
|
-
function getStorageInfo (options = {}) {
|
|
129
|
-
const { success, complete } = options
|
|
130
|
-
const res = { errMsg: 'getStorageInfo:ok' }
|
|
131
|
-
|
|
132
|
-
const info = getStorageInfoSync()
|
|
133
|
-
|
|
134
|
-
Object.assign(res, info)
|
|
135
|
-
|
|
136
|
-
success && success(res)
|
|
137
|
-
complete && complete(res)
|
|
138
|
-
|
|
139
|
-
return Promise.resolve(res)
|
|
140
|
-
}
|
|
141
|
-
|
|
142
|
-
function getStorageInfoSync () {
|
|
143
|
-
const res = {}
|
|
144
|
-
res.keys = Object.keys(localStorage)
|
|
145
|
-
res.limitSize = null
|
|
146
|
-
res.currentSize = null
|
|
147
|
-
return res
|
|
148
|
-
}
|
|
149
|
-
|
|
150
|
-
function removeStorage (options) {
|
|
151
|
-
// options must be an Object
|
|
152
|
-
const isObject = shouldBeObject(options)
|
|
153
|
-
if (!isObject.res) {
|
|
154
|
-
const res = { errMsg: `removeStorage${isObject.msg}` }
|
|
155
|
-
console.error(res.errMsg)
|
|
156
|
-
return Promise.reject(res)
|
|
157
|
-
}
|
|
158
|
-
|
|
159
|
-
const { key, success, fail, complete } = options
|
|
160
|
-
const res = { errMsg: 'removeStorage:ok' }
|
|
161
|
-
|
|
162
|
-
if (typeof key !== 'string') {
|
|
163
|
-
res.errMsg = getParameterError({
|
|
164
|
-
name: 'removeStorage',
|
|
165
|
-
para: 'key',
|
|
166
|
-
correct: 'String',
|
|
167
|
-
wrong: key
|
|
168
|
-
})
|
|
169
|
-
console.error(res.errMsg)
|
|
170
|
-
typeof fail === 'function' && fail(res)
|
|
171
|
-
typeof complete === 'function' && complete(res)
|
|
172
|
-
return Promise.reject(res)
|
|
173
|
-
}
|
|
174
|
-
|
|
175
|
-
removeStorageSync(key)
|
|
176
|
-
|
|
177
|
-
success && success(res)
|
|
178
|
-
complete && complete(res)
|
|
179
|
-
|
|
180
|
-
return Promise.resolve(res)
|
|
181
|
-
}
|
|
182
|
-
|
|
183
|
-
function removeStorageSync (key) {
|
|
184
|
-
if (typeof key !== 'string') {
|
|
185
|
-
console.error(getParameterError({
|
|
186
|
-
name: 'removeStorage',
|
|
187
|
-
correct: 'String',
|
|
188
|
-
wrong: key
|
|
189
|
-
}))
|
|
190
|
-
return
|
|
191
|
-
}
|
|
192
|
-
|
|
193
|
-
localStorage.removeItem(key)
|
|
194
|
-
}
|
|
195
|
-
|
|
196
|
-
function clearStorage () {
|
|
197
|
-
localStorage.clear()
|
|
198
|
-
}
|
|
199
|
-
|
|
200
|
-
export {
|
|
201
|
-
setStorage,
|
|
202
|
-
setStorageSync,
|
|
203
|
-
getStorage,
|
|
204
|
-
getStorageSync,
|
|
205
|
-
getStorageInfo,
|
|
206
|
-
getStorageInfoSync,
|
|
207
|
-
removeStorage,
|
|
208
|
-
removeStorageSync,
|
|
209
|
-
clearStorage,
|
|
210
|
-
clearStorage as clearStorageSync
|
|
211
|
-
}
|
package/src/api/system/index.js
DELETED
|
@@ -1,9 +0,0 @@
|
|
|
1
|
-
import { getSystemInfo, getSystemInfoSync } from './info'
|
|
2
|
-
import { getNetworkType, onNetworkStatusChange } from './network'
|
|
3
|
-
import { processOpenapi } from '../utils'
|
|
4
|
-
|
|
5
|
-
export const scanCode = processOpenapi('scanQRCode', { needResult: 1 }, res => ({
|
|
6
|
-
errMsg: res.errMsg === 'scanQRCode:ok' ? 'scanCode:ok' : res.errMsg,
|
|
7
|
-
result: res.resultStr
|
|
8
|
-
}))
|
|
9
|
-
export { getSystemInfo, getSystemInfoSync, getNetworkType, onNetworkStatusChange }
|
package/src/api/system/info.js
DELETED
|
@@ -1,36 +0,0 @@
|
|
|
1
|
-
import MobileDetect from 'mobile-detect'
|
|
2
|
-
|
|
3
|
-
function getSystemInfoSync () {
|
|
4
|
-
const md = new MobileDetect(navigator.userAgent)
|
|
5
|
-
|
|
6
|
-
const info = {
|
|
7
|
-
brand: md.mobile(), // 手机品牌
|
|
8
|
-
model: md.mobile(), // 手机型号
|
|
9
|
-
system: md.os(), // 操作系统版本
|
|
10
|
-
pixelRatio: window.devicePixelRatio, // 设备像素比
|
|
11
|
-
screenWidth: window.screen.width, // 屏幕宽度
|
|
12
|
-
screenHeight: window.screen.height, // 屏幕高度
|
|
13
|
-
windowWidth: document.documentElement.clientWidth, // 可使用窗口宽度
|
|
14
|
-
windowHeight: document.documentElement.clientHeight, // 可使用窗口高度
|
|
15
|
-
version: '', // 微信版本号
|
|
16
|
-
statusBarHeight: '', // 状态栏的高度
|
|
17
|
-
platform: navigator.platform, // 客户端平台
|
|
18
|
-
language: navigator.language, // 微信设置的语言
|
|
19
|
-
fontSizeSetting: '', // 用户字体大小设置。以“我-设置-通用-字体大小”中的设置为准,单位:px
|
|
20
|
-
SDKVersion: '' // 客户端基础库版本
|
|
21
|
-
}
|
|
22
|
-
|
|
23
|
-
return info
|
|
24
|
-
}
|
|
25
|
-
|
|
26
|
-
function getSystemInfo (options = {}) {
|
|
27
|
-
const { success, complete } = options
|
|
28
|
-
return new Promise(resolve => {
|
|
29
|
-
const info = getSystemInfoSync()
|
|
30
|
-
typeof success === 'function' && success(info)
|
|
31
|
-
typeof complete === 'function' && complete(info)
|
|
32
|
-
resolve(info)
|
|
33
|
-
})
|
|
34
|
-
}
|
|
35
|
-
|
|
36
|
-
export { getSystemInfoSync, getSystemInfo }
|
|
@@ -1,68 +0,0 @@
|
|
|
1
|
-
function getConnection () {
|
|
2
|
-
return navigator.connection || navigator.mozConnection || navigator.webkitConnection || navigator.msConnection
|
|
3
|
-
}
|
|
4
|
-
|
|
5
|
-
function getNetworkType (options = {}) {
|
|
6
|
-
const connection = getConnection()
|
|
7
|
-
const { success, complete } = options
|
|
8
|
-
const res = {
|
|
9
|
-
errMsg: 'getNetworkType:ok'
|
|
10
|
-
}
|
|
11
|
-
|
|
12
|
-
// 浏览器不支持获取网络状态
|
|
13
|
-
if (!connection) {
|
|
14
|
-
res.networkType = 'unknown'
|
|
15
|
-
typeof success === 'function' && success(res)
|
|
16
|
-
typeof complete === 'function' && complete(res)
|
|
17
|
-
return Promise.resolve(res)
|
|
18
|
-
}
|
|
19
|
-
|
|
20
|
-
let type = 'unknown'
|
|
21
|
-
|
|
22
|
-
// Supports only the navigator.connection.type value which doesn't match the latest spec.
|
|
23
|
-
// https://www.davidbcalhoun.com/2010/using-navigator-connection-android/
|
|
24
|
-
if (!isNaN(Number(connection.type))) {
|
|
25
|
-
switch (connection.type) {
|
|
26
|
-
case connection.WIFI:
|
|
27
|
-
type = 'wifi'
|
|
28
|
-
break
|
|
29
|
-
case connection.CELL_3G:
|
|
30
|
-
type = '3g'
|
|
31
|
-
break
|
|
32
|
-
case connection.CELL_2G:
|
|
33
|
-
type = '2g'
|
|
34
|
-
break
|
|
35
|
-
default:
|
|
36
|
-
// ETHERNET, UNKNOWN
|
|
37
|
-
type = 'unknown'
|
|
38
|
-
}
|
|
39
|
-
} else if (connection.type) {
|
|
40
|
-
// Only supports the type value.
|
|
41
|
-
type = connection.type
|
|
42
|
-
} else if (connection.effectiveType) {
|
|
43
|
-
// effectiveType
|
|
44
|
-
type = connection.effectiveType
|
|
45
|
-
}
|
|
46
|
-
|
|
47
|
-
res.networkType = type
|
|
48
|
-
typeof success === 'function' && success(res)
|
|
49
|
-
typeof complete === 'function' && complete(res)
|
|
50
|
-
return Promise.resolve(res)
|
|
51
|
-
}
|
|
52
|
-
|
|
53
|
-
function onNetworkStatusChange (cb) {
|
|
54
|
-
const connection = getConnection()
|
|
55
|
-
if (connection) {
|
|
56
|
-
connection.addEventListener('change', function () {
|
|
57
|
-
getNetworkType()
|
|
58
|
-
.then(res => {
|
|
59
|
-
const { networkType } = res
|
|
60
|
-
const isConnected = networkType !== 'none'
|
|
61
|
-
const obj = { isConnected, networkType }
|
|
62
|
-
cb(obj)
|
|
63
|
-
})
|
|
64
|
-
})
|
|
65
|
-
}
|
|
66
|
-
}
|
|
67
|
-
|
|
68
|
-
export { getNetworkType, onNetworkStatusChange }
|