@tarojs/taro-rn 3.3.5 → 3.3.9
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/lib/chooseImage/index.js +1 -0
- package/dist/lib/chooseImage/index.js.map +1 -1
- package/dist/lib/clearStorage/index.js +20 -13
- package/dist/lib/clearStorage/index.js.map +1 -1
- package/dist/lib/compressImage/index.js +29 -14
- package/dist/lib/compressImage/index.js.map +1 -1
- package/dist/lib/connectSocket/index.js +6 -6
- package/dist/lib/connectSocket/index.js.map +1 -1
- package/dist/lib/connectSocket/socketTask.js +8 -8
- package/dist/lib/connectSocket/socketTask.js.map +1 -1
- package/dist/lib/createCameraContext/index.js +53 -21
- package/dist/lib/createCameraContext/index.js.map +1 -1
- package/dist/lib/file.js +26 -42
- package/dist/lib/file.js.map +1 -1
- package/dist/lib/getClipboardData/index.js +2 -3
- package/dist/lib/getClipboardData/index.js.map +1 -1
- package/dist/lib/getLocation/index.js +5 -7
- package/dist/lib/getLocation/index.js.map +1 -1
- package/dist/lib/getStorage/index.js +21 -16
- package/dist/lib/getStorage/index.js.map +1 -1
- package/dist/lib/getStorageInfo/index.js +12 -13
- package/dist/lib/getStorageInfo/index.js.map +1 -1
- package/dist/lib/getSystemInfo/index.js +3 -6
- package/dist/lib/getSystemInfo/index.js.map +1 -1
- package/dist/lib/keyboard.js +3 -5
- package/dist/lib/keyboard.js.map +1 -1
- package/dist/lib/makePhoneCall/index.js +3 -6
- package/dist/lib/makePhoneCall/index.js.map +1 -1
- package/dist/lib/media.js +46 -55
- package/dist/lib/media.js.map +1 -1
- package/dist/lib/network.js +4 -4
- package/dist/lib/network.js.map +1 -1
- package/dist/lib/openUrl/index.js +3 -6
- package/dist/lib/openUrl/index.js.map +1 -1
- package/dist/lib/permission.js +20 -29
- package/dist/lib/permission.js.map +1 -1
- package/dist/lib/previewImage/index.js +7 -1
- package/dist/lib/previewImage/index.js.map +1 -1
- package/dist/lib/removeStorage/index.js +4 -4
- package/dist/lib/removeStorage/index.js.map +1 -1
- package/dist/lib/request/index.js +31 -42
- package/dist/lib/request/index.js.map +1 -1
- package/dist/lib/setClipboardData/index.js +3 -6
- package/dist/lib/setClipboardData/index.js.map +1 -1
- package/dist/lib/setStorage/index.js +20 -13
- package/dist/lib/setStorage/index.js.map +1 -1
- package/dist/lib/showActionSheet/index.js +4 -4
- package/dist/lib/showActionSheet/index.js.map +1 -1
- package/dist/lib/showModal/index.js +6 -6
- package/dist/lib/showModal/index.js.map +1 -1
- package/dist/lib/showModal/toast.js +8 -8
- package/dist/lib/showModal/toast.js.map +1 -1
- package/dist/lib/vibrate.js +10 -15
- package/dist/lib/vibrate.js.map +1 -1
- package/package.json +4 -4
- package/src/lib/chooseImage/index.ts +1 -0
- package/src/lib/clearStorage/index.ts +9 -16
- package/src/lib/compressImage/index.ts +17 -15
- package/src/lib/connectSocket/index.ts +6 -6
- package/src/lib/connectSocket/socketTask.ts +8 -8
- package/src/lib/createCameraContext/index.ts +41 -22
- package/src/lib/file.ts +27 -44
- package/src/lib/getClipboardData/index.ts +2 -4
- package/src/lib/getLocation/index.ts +6 -8
- package/src/lib/getStorage/index.ts +18 -28
- package/src/lib/getStorageInfo/index.ts +16 -22
- package/src/lib/getSystemInfo/index.ts +4 -9
- package/src/lib/keyboard.ts +4 -6
- package/src/lib/makePhoneCall/index.ts +3 -8
- package/src/lib/media.ts +43 -53
- package/src/lib/network.ts +4 -4
- package/src/lib/openUrl/index.ts +3 -8
- package/src/lib/permission.ts +15 -34
- package/src/lib/previewImage/index.tsx +9 -1
- package/src/lib/removeStorage/index.ts +4 -4
- package/src/lib/request/index.ts +37 -48
- package/src/lib/setClipboardData/index.ts +3 -8
- package/src/lib/setStorage/index.ts +9 -16
- package/src/lib/showActionSheet/index.tsx +4 -4
- package/src/lib/showModal/index.tsx +6 -6
- package/src/lib/showModal/toast.tsx +8 -8
- package/src/lib/vibrate.ts +3 -10
|
@@ -29,13 +29,13 @@ class SocketTask {
|
|
|
29
29
|
try {
|
|
30
30
|
this.ws.send(data)
|
|
31
31
|
|
|
32
|
-
success
|
|
33
|
-
complete
|
|
32
|
+
success?.(res)
|
|
33
|
+
complete?.(res)
|
|
34
34
|
} catch (err) {
|
|
35
35
|
const res = { errMsg: err.message }
|
|
36
36
|
|
|
37
|
-
fail
|
|
38
|
-
complete
|
|
37
|
+
fail?.(res)
|
|
38
|
+
complete?.(res)
|
|
39
39
|
}
|
|
40
40
|
}
|
|
41
41
|
|
|
@@ -54,12 +54,12 @@ class SocketTask {
|
|
|
54
54
|
this.ws.close(code, reason)
|
|
55
55
|
// 把自己从链接数组中清除
|
|
56
56
|
this._destroyWhenClose && this._destroyWhenClose()
|
|
57
|
-
success
|
|
58
|
-
complete
|
|
57
|
+
success?.(res)
|
|
58
|
+
complete?.(res)
|
|
59
59
|
} catch (err) {
|
|
60
60
|
const res = { errMsg: err.message }
|
|
61
|
-
fail
|
|
62
|
-
complete
|
|
61
|
+
fail?.(res)
|
|
62
|
+
complete?.(res)
|
|
63
63
|
}
|
|
64
64
|
}
|
|
65
65
|
|
|
@@ -1,11 +1,12 @@
|
|
|
1
1
|
import * as Permissions from 'expo-permissions'
|
|
2
|
-
|
|
2
|
+
import { errorHandler, successHandler } from '../../utils'
|
|
3
|
+
const globalAny: any = global
|
|
3
4
|
|
|
4
5
|
class CameraContext {
|
|
5
6
|
private cameraRef: any
|
|
6
7
|
private recordCallback: Taro.CameraContext.StopRecordOption
|
|
7
8
|
|
|
8
|
-
constructor
|
|
9
|
+
constructor(cameraRef) {
|
|
9
10
|
this.cameraRef = cameraRef
|
|
10
11
|
}
|
|
11
12
|
|
|
@@ -51,33 +52,51 @@ class CameraContext {
|
|
|
51
52
|
/**
|
|
52
53
|
* 拍摄照片
|
|
53
54
|
*/
|
|
54
|
-
takePhoto = (option: Taro.CameraContext.TakePhotoOption) => {
|
|
55
|
-
|
|
56
|
-
|
|
55
|
+
takePhoto = async (option: Taro.CameraContext.TakePhotoOption) => {
|
|
56
|
+
const { quality = 'normal', success, fail, complete } = option
|
|
57
|
+
let _quality = 0
|
|
58
|
+
switch (quality) {
|
|
57
59
|
case 'high':
|
|
58
|
-
|
|
60
|
+
_quality = 1
|
|
59
61
|
break
|
|
60
62
|
case 'normal':
|
|
61
|
-
|
|
63
|
+
_quality = 0.6
|
|
62
64
|
break
|
|
63
65
|
case 'low':
|
|
64
|
-
|
|
66
|
+
_quality = 0.3
|
|
65
67
|
break
|
|
66
68
|
}
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
|
|
69
|
+
try {
|
|
70
|
+
const { status } = await Permissions.askAsync(Permissions.CAMERA, Permissions.AUDIO_RECORDING)
|
|
71
|
+
if (status === 'granted') {
|
|
72
|
+
if (this.cameraRef?.takePictureAsync) {
|
|
73
|
+
const { uri } = await this.cameraRef.takePictureAsync({ quality: _quality })
|
|
74
|
+
const res = {
|
|
75
|
+
tempImagePath: uri,
|
|
76
|
+
errMsg: 'takePhoto: ok'
|
|
77
|
+
}
|
|
78
|
+
return successHandler(success, complete)(res)
|
|
79
|
+
} else {
|
|
80
|
+
const err = {
|
|
81
|
+
errMsg: 'takePhoto: fail',
|
|
82
|
+
err: Error('unknown')
|
|
83
|
+
}
|
|
84
|
+
return errorHandler(fail, complete)(err)
|
|
85
|
+
}
|
|
86
|
+
} else {
|
|
87
|
+
const err = {
|
|
88
|
+
errMsg: 'takePhoto: fail',
|
|
89
|
+
err: Error('You have not enabled camera permissions')
|
|
90
|
+
}
|
|
91
|
+
return errorHandler(fail, complete)(err)
|
|
92
|
+
}
|
|
93
|
+
} catch (error) {
|
|
94
|
+
const err = {
|
|
95
|
+
errMsg: 'takePhoto: fail',
|
|
96
|
+
err: error
|
|
97
|
+
}
|
|
98
|
+
return errorHandler(fail, complete)(err)
|
|
99
|
+
}
|
|
81
100
|
}
|
|
82
101
|
|
|
83
102
|
/**
|
package/src/lib/file.ts
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import * as FileSystem from 'expo-file-system'
|
|
2
2
|
import { Platform } from 'react-native'
|
|
3
|
-
import { shouleBeObject } from '../utils'
|
|
3
|
+
import { shouleBeObject, successHandler, errorHandler } from '../utils'
|
|
4
4
|
|
|
5
5
|
interface Func{
|
|
6
6
|
(arg: any): void
|
|
@@ -39,7 +39,7 @@ const createFormData = (filePath, body, name) => {
|
|
|
39
39
|
Object.keys(body).forEach(key => {
|
|
40
40
|
data.append(key, body[key])
|
|
41
41
|
})
|
|
42
|
-
|
|
42
|
+
|
|
43
43
|
data.append(name, fileObj)
|
|
44
44
|
|
|
45
45
|
return data
|
|
@@ -67,20 +67,14 @@ function uploadFile (opts: Taro.uploadFile.Option): Promise<Taro.uploadFile.Succ
|
|
|
67
67
|
|
|
68
68
|
return _fetch(execFetch, timeout).then((res: any) => {
|
|
69
69
|
if (res.ok) {
|
|
70
|
-
success
|
|
71
|
-
complete && complete(res)
|
|
72
|
-
return Promise.resolve(res)
|
|
70
|
+
return successHandler(success, complete)(res)
|
|
73
71
|
} else {
|
|
74
72
|
const errMsg = `uploadFile fail: ${res.status} ${res.statusText}`
|
|
75
|
-
fail
|
|
76
|
-
complete && complete({ errMsg })
|
|
77
|
-
return Promise.reject(new Error(errMsg))
|
|
73
|
+
return errorHandler(fail, complete)({ errMsg })
|
|
78
74
|
}
|
|
79
75
|
}).catch(e => {
|
|
80
76
|
const errMsg = `uploadFile fail: ${e}`
|
|
81
|
-
fail
|
|
82
|
-
complete && complete({ errMsg })
|
|
83
|
-
return Promise.reject(new Error(errMsg))
|
|
77
|
+
return errorHandler(fail, complete)({ errMsg })
|
|
84
78
|
})
|
|
85
79
|
}
|
|
86
80
|
|
|
@@ -93,10 +87,6 @@ function uploadFile (opts: Taro.uploadFile.Option): Promise<Taro.uploadFile.Succ
|
|
|
93
87
|
* @returns {*}
|
|
94
88
|
*/
|
|
95
89
|
function downloadFile (opts: Taro.downloadFile.Option): Promise<Taro.DownloadTask> {
|
|
96
|
-
if (typeof opts !== 'object') {
|
|
97
|
-
const res = { errMsg: `fail parameter error: ${opts} should be Object` }
|
|
98
|
-
return Promise.reject(res)
|
|
99
|
-
}
|
|
100
90
|
const { url, header, filePath, success, fail, complete }: any = opts
|
|
101
91
|
let downloadResumable
|
|
102
92
|
const p: ExtPromise<any> = new Promise((resolve, reject) => {
|
|
@@ -128,16 +118,16 @@ function downloadFile (opts: Taro.downloadFile.Option): Promise<Taro.DownloadTas
|
|
|
128
118
|
statusCode: status
|
|
129
119
|
}
|
|
130
120
|
filePath && (res.filePath = filePath)
|
|
131
|
-
success
|
|
132
|
-
complete
|
|
121
|
+
success?.(res)
|
|
122
|
+
complete?.(res)
|
|
133
123
|
resolve(res)
|
|
134
124
|
}).catch((err) => {
|
|
135
125
|
const res = {
|
|
136
126
|
errMsg: 'download file fail',
|
|
137
127
|
err
|
|
138
128
|
}
|
|
139
|
-
fail
|
|
140
|
-
complete
|
|
129
|
+
fail?.(res)
|
|
130
|
+
complete?.(res)
|
|
141
131
|
reject(res)
|
|
142
132
|
})
|
|
143
133
|
})
|
|
@@ -166,7 +156,6 @@ async function saveFile (opts: Taro.saveFile.Option): Promise<Taro.saveFile.Succ
|
|
|
166
156
|
const isObject = shouleBeObject(opts)
|
|
167
157
|
if (!isObject.res) {
|
|
168
158
|
res.errMsg = `saveFile${isObject.msg}`
|
|
169
|
-
console.error(res)
|
|
170
159
|
return Promise.reject(res)
|
|
171
160
|
}
|
|
172
161
|
|
|
@@ -175,8 +164,6 @@ async function saveFile (opts: Taro.saveFile.Option): Promise<Taro.saveFile.Succ
|
|
|
175
164
|
const destPath = filePath || FileSystem.documentDirectory
|
|
176
165
|
const savedFilePath = destPath + fileName
|
|
177
166
|
|
|
178
|
-
console.log('文件路径', FileSystem.documentDirectory)
|
|
179
|
-
|
|
180
167
|
try {
|
|
181
168
|
const props = await FileSystem.getInfoAsync(destPath)
|
|
182
169
|
if (!props.exists) {
|
|
@@ -187,13 +174,13 @@ async function saveFile (opts: Taro.saveFile.Option): Promise<Taro.saveFile.Succ
|
|
|
187
174
|
await FileSystem.moveAsync({ from: tempFilePath, to: savedFilePath })
|
|
188
175
|
}
|
|
189
176
|
res.savedFilePath = savedFilePath
|
|
190
|
-
success
|
|
191
|
-
complete
|
|
177
|
+
success?.(res)
|
|
178
|
+
complete?.(res)
|
|
192
179
|
return res
|
|
193
180
|
} catch (e) {
|
|
194
181
|
res.errMsg = `saveFile:fail. ${e.message}`
|
|
195
|
-
fail
|
|
196
|
-
complete
|
|
182
|
+
fail?.(res)
|
|
183
|
+
complete?.(res)
|
|
197
184
|
throw res
|
|
198
185
|
}
|
|
199
186
|
}
|
|
@@ -220,14 +207,10 @@ async function removeSavedFile (opts: Taro.removeSavedFile.Option): Promise<Taro
|
|
|
220
207
|
...res,
|
|
221
208
|
...obj
|
|
222
209
|
}
|
|
223
|
-
success
|
|
224
|
-
complete && complete(res)
|
|
225
|
-
return Promise.resolve(res)
|
|
210
|
+
return successHandler(success, complete)(res)
|
|
226
211
|
} catch (e) {
|
|
227
212
|
res.errMsg = `removeSavedFile:fail. ${e.message}`
|
|
228
|
-
fail
|
|
229
|
-
complete && complete(res)
|
|
230
|
-
return Promise.reject(res)
|
|
213
|
+
return errorHandler(fail, complete)(res)
|
|
231
214
|
}
|
|
232
215
|
}
|
|
233
216
|
|
|
@@ -260,13 +243,13 @@ async function getSavedFileList (opts: Taro.getSavedFileList.Option = {}): Promi
|
|
|
260
243
|
}
|
|
261
244
|
})
|
|
262
245
|
res.fileList = fileList
|
|
263
|
-
success
|
|
264
|
-
complete
|
|
246
|
+
success?.(res)
|
|
247
|
+
complete?.(res)
|
|
265
248
|
return res
|
|
266
249
|
} catch (e) {
|
|
267
250
|
res.errMsg = `getSavedFileList:fail. ${e.message}`
|
|
268
|
-
fail
|
|
269
|
-
complete
|
|
251
|
+
fail?.(res)
|
|
252
|
+
complete?.(res)
|
|
270
253
|
throw res
|
|
271
254
|
}
|
|
272
255
|
}
|
|
@@ -293,13 +276,13 @@ async function getSavedFileInfo (opts: Taro.getSavedFileInfo.Option): Promise<Ta
|
|
|
293
276
|
}
|
|
294
277
|
res.size = obj.size
|
|
295
278
|
res.createTime = obj.modificationTime
|
|
296
|
-
success
|
|
297
|
-
complete
|
|
279
|
+
success?.(res)
|
|
280
|
+
complete?.(res)
|
|
298
281
|
return res
|
|
299
282
|
} catch (e) {
|
|
300
283
|
res.errMsg = `getSavedFileInfo:fail. ${e.message}`
|
|
301
|
-
fail
|
|
302
|
-
complete
|
|
284
|
+
fail?.(res)
|
|
285
|
+
complete?.(res)
|
|
303
286
|
throw res
|
|
304
287
|
}
|
|
305
288
|
}
|
|
@@ -328,13 +311,13 @@ async function getFileInfo (opts: Taro.getFileInfo.Option): Promise<Taro.getFile
|
|
|
328
311
|
}
|
|
329
312
|
res.size = obj.size
|
|
330
313
|
res.md5 = obj.md5
|
|
331
|
-
success
|
|
332
|
-
complete
|
|
314
|
+
success?.(res)
|
|
315
|
+
complete?.(res)
|
|
333
316
|
return res
|
|
334
317
|
} catch (e) {
|
|
335
318
|
res.errMsg = `getFileInfo:fail. ${e.message}`
|
|
336
|
-
fail
|
|
337
|
-
complete
|
|
319
|
+
fail?.(res)
|
|
320
|
+
complete?.(res)
|
|
338
321
|
throw res
|
|
339
322
|
}
|
|
340
323
|
}
|
|
@@ -1,4 +1,5 @@
|
|
|
1
1
|
import Clipboard from '@react-native-community/clipboard'
|
|
2
|
+
import { errorHandler } from '../../utils'
|
|
2
3
|
|
|
3
4
|
export function getClipboardData (opts: Taro.getClipboardData.Option = {}): Promise<Taro.getClipboardData.Promised> {
|
|
4
5
|
const { success, fail, complete } = opts
|
|
@@ -17,9 +18,6 @@ export function getClipboardData (opts: Taro.getClipboardData.Option = {}): Prom
|
|
|
17
18
|
const res = {
|
|
18
19
|
errMsg: err.message
|
|
19
20
|
}
|
|
20
|
-
fail
|
|
21
|
-
complete?.(res)
|
|
22
|
-
|
|
23
|
-
return Promise.reject(err)
|
|
21
|
+
return errorHandler(fail, complete)(res)
|
|
24
22
|
})
|
|
25
23
|
}
|
|
@@ -1,24 +1,22 @@
|
|
|
1
1
|
import Geolocation from '@react-native-community/geolocation'
|
|
2
2
|
import { Permissions } from 'react-native-unimodules'
|
|
3
3
|
import { askAsyncPermissions } from '../../utils/premissions'
|
|
4
|
+
import { errorHandler } from '../../utils'
|
|
4
5
|
|
|
5
6
|
export async function getLocation(opts: Taro.getLocation.Option = {}): Promise<Taro.getLocation.SuccessCallbackResult> {
|
|
7
|
+
const { isHighAccuracy = false, highAccuracyExpireTime = 3000, success, fail, complete } = opts
|
|
8
|
+
|
|
6
9
|
try {
|
|
7
10
|
const status = await askAsyncPermissions(Permissions.LOCATION)
|
|
8
11
|
if (status !== 'granted') {
|
|
9
12
|
const res = { errMsg: 'Permissions denied!' }
|
|
10
|
-
return
|
|
13
|
+
return errorHandler(fail, complete)(res)
|
|
11
14
|
}
|
|
12
15
|
} catch (err) {
|
|
13
|
-
const res = {
|
|
14
|
-
|
|
15
|
-
err
|
|
16
|
-
}
|
|
17
|
-
return Promise.reject(res)
|
|
16
|
+
const res = { errMsg: 'Permissions denied!' }
|
|
17
|
+
return errorHandler(fail, complete)(res)
|
|
18
18
|
}
|
|
19
19
|
|
|
20
|
-
const { isHighAccuracy = false, highAccuracyExpireTime = 3000, success, fail, complete } = opts
|
|
21
|
-
|
|
22
20
|
return new Promise((resolve, reject) => {
|
|
23
21
|
Geolocation.getCurrentPosition(
|
|
24
22
|
({ coords }) => {
|
|
@@ -1,34 +1,24 @@
|
|
|
1
1
|
import AsyncStorage from '@react-native-async-storage/async-storage'
|
|
2
|
+
import { errorHandler, successHandler } from '../../utils'
|
|
2
3
|
|
|
3
|
-
export function getStorage(option: Taro.getStorage.Option<any>): Promise<Taro.getStorage.SuccessCallbackResult<any>> {
|
|
4
|
+
export async function getStorage(option: Taro.getStorage.Option<any>): Promise<Taro.getStorage.SuccessCallbackResult<any>> {
|
|
4
5
|
const { key, success, fail, complete } = option
|
|
5
6
|
const res = { errMsg: 'getStorage:ok' }
|
|
6
7
|
|
|
7
|
-
|
|
8
|
-
AsyncStorage.getItem(key)
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
reject(res)
|
|
25
|
-
}
|
|
26
|
-
}).catch((err) => {
|
|
27
|
-
res.errMsg = err.message
|
|
28
|
-
fail?.(res)
|
|
29
|
-
complete?.(res)
|
|
30
|
-
|
|
31
|
-
reject(err)
|
|
32
|
-
})
|
|
33
|
-
})
|
|
8
|
+
try {
|
|
9
|
+
const data = await AsyncStorage.getItem(key)
|
|
10
|
+
if (data) {
|
|
11
|
+
const result = {
|
|
12
|
+
data: JSON.parse(data),
|
|
13
|
+
...res
|
|
14
|
+
}
|
|
15
|
+
return successHandler(success, complete)(result)
|
|
16
|
+
} else {
|
|
17
|
+
res.errMsg = 'getStorage:fail data not found'
|
|
18
|
+
return errorHandler(fail, complete)(res)
|
|
19
|
+
}
|
|
20
|
+
} catch (err) {
|
|
21
|
+
res.errMsg = err.message
|
|
22
|
+
return errorHandler(fail, complete)(res)
|
|
23
|
+
}
|
|
34
24
|
}
|
|
@@ -1,4 +1,5 @@
|
|
|
1
1
|
import AsyncStorage from '@react-native-async-storage/async-storage'
|
|
2
|
+
import { errorHandler, successHandler } from '../../utils'
|
|
2
3
|
|
|
3
4
|
async function getStorageCurrentSize() {
|
|
4
5
|
const keys = await AsyncStorage.getAllKeys()
|
|
@@ -10,29 +11,22 @@ async function getStorageCurrentSize() {
|
|
|
10
11
|
return Number((size / 1024).toFixed(2))
|
|
11
12
|
}
|
|
12
13
|
|
|
13
|
-
export function getStorageInfo(option: Taro.getStorageInfo.Option = {}): Promise<Taro.General.CallbackResult> {
|
|
14
|
+
export async function getStorageInfo(option: Taro.getStorageInfo.Option = {}): Promise<Taro.General.CallbackResult> {
|
|
14
15
|
const { success, fail, complete } = option
|
|
15
16
|
const res = { errMsg: 'getStorageInfo:ok' }
|
|
16
17
|
|
|
17
|
-
|
|
18
|
-
AsyncStorage.getAllKeys()
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
res.errMsg = err.message
|
|
32
|
-
fail && fail(res)
|
|
33
|
-
complete && complete(res)
|
|
34
|
-
|
|
35
|
-
reject(err)
|
|
36
|
-
})
|
|
37
|
-
})
|
|
18
|
+
try {
|
|
19
|
+
const data = await AsyncStorage.getAllKeys()
|
|
20
|
+
const result = {
|
|
21
|
+
...res,
|
|
22
|
+
keys: data,
|
|
23
|
+
currentSize: await getStorageCurrentSize(),
|
|
24
|
+
limitSize: Infinity
|
|
25
|
+
}
|
|
26
|
+
// @ts-ignore
|
|
27
|
+
return successHandler(success, complete)(result)
|
|
28
|
+
} catch (err) {
|
|
29
|
+
res.errMsg = err.message
|
|
30
|
+
return errorHandler(fail, complete)(err)
|
|
31
|
+
}
|
|
38
32
|
}
|
|
@@ -1,4 +1,5 @@
|
|
|
1
1
|
import { getSystemInfoSync } from '../getSystemInfoSync'
|
|
2
|
+
import { successHandler, errorHandler } from '../../utils'
|
|
2
3
|
|
|
3
4
|
export function getSystemInfo(opts: Taro.getSystemInfo.Option = {}): Promise<Taro.getSystemInfo.Result> {
|
|
4
5
|
const { success, fail, complete }: any = opts
|
|
@@ -7,15 +8,9 @@ export function getSystemInfo(opts: Taro.getSystemInfo.Option = {}): Promise<Ta
|
|
|
7
8
|
...getSystemInfoSync(),
|
|
8
9
|
errMsg: 'getSystemInfo: ok'
|
|
9
10
|
}
|
|
10
|
-
success
|
|
11
|
-
complete && complete(res)
|
|
12
|
-
|
|
13
|
-
return Promise.resolve(res)
|
|
11
|
+
return successHandler(success, complete)(res)
|
|
14
12
|
} catch (err) {
|
|
15
13
|
const res = { errMsg: err.message }
|
|
16
|
-
fail
|
|
17
|
-
complete && complete(res)
|
|
18
|
-
|
|
19
|
-
return Promise.reject(err)
|
|
14
|
+
return errorHandler(fail, complete)(res)
|
|
20
15
|
}
|
|
21
|
-
}
|
|
16
|
+
}
|
package/src/lib/keyboard.ts
CHANGED
|
@@ -1,17 +1,15 @@
|
|
|
1
1
|
import { Keyboard } from 'react-native'
|
|
2
|
-
import { createCallbackManager } from '../utils'
|
|
2
|
+
import { createCallbackManager, errorHandler, successHandler } from '../utils'
|
|
3
3
|
|
|
4
|
-
const hideKeyboard = (opts: Taro.hideKeyboard.Option = {}):
|
|
4
|
+
const hideKeyboard = (opts: Taro.hideKeyboard.Option = {}): Promise<Taro.General.CallbackResult> => {
|
|
5
5
|
const { success, fail, complete } = opts
|
|
6
6
|
try {
|
|
7
7
|
Keyboard.dismiss()
|
|
8
8
|
const res = { errMsg: 'hideKeyboard:ok' }
|
|
9
|
-
success
|
|
10
|
-
complete?.(res)
|
|
9
|
+
return successHandler(success, complete)(res)
|
|
11
10
|
} catch (err) {
|
|
12
11
|
const res = { errMsg: err.message }
|
|
13
|
-
fail
|
|
14
|
-
complete?.(res)
|
|
12
|
+
return errorHandler(fail, complete)(res)
|
|
15
13
|
}
|
|
16
14
|
}
|
|
17
15
|
|
|
@@ -1,4 +1,5 @@
|
|
|
1
1
|
import { Linking } from 'react-native'
|
|
2
|
+
import { successHandler, errorHandler } from '../../utils'
|
|
2
3
|
|
|
3
4
|
export async function makePhoneCall(opts: Taro.makePhoneCall.Option): Promise<Taro.General.CallbackResult> {
|
|
4
5
|
const { phoneNumber, success, fail, complete } = opts
|
|
@@ -8,15 +9,9 @@ export async function makePhoneCall(opts: Taro.makePhoneCall.Option): Promise<Ta
|
|
|
8
9
|
const isSupport = await Linking.canOpenURL(telUrl)
|
|
9
10
|
if (isSupport) {
|
|
10
11
|
await Linking.openURL(telUrl)
|
|
11
|
-
success
|
|
12
|
-
complete?.(res)
|
|
13
|
-
|
|
14
|
-
return Promise.resolve(res)
|
|
12
|
+
return successHandler(success, complete)(res)
|
|
15
13
|
} else {
|
|
16
14
|
res.errMsg = 'makePhoneCall:fail. Do not support the makePhoneCall Api'
|
|
17
|
-
fail
|
|
18
|
-
complete?.(res)
|
|
19
|
-
|
|
20
|
-
return Promise.reject(res)
|
|
15
|
+
return errorHandler(fail, complete)(res)
|
|
21
16
|
}
|
|
22
17
|
}
|
package/src/lib/media.ts
CHANGED
|
@@ -2,6 +2,7 @@ import CameraRoll from '@react-native-community/cameraroll'
|
|
|
2
2
|
import { Permissions } from 'react-native-unimodules'
|
|
3
3
|
import * as ImagePicker from 'expo-image-picker'
|
|
4
4
|
import { askAsyncPermissions } from '../utils/premissions'
|
|
5
|
+
import { successHandler, errorHandler } from '../utils'
|
|
5
6
|
|
|
6
7
|
export const MEDIA_TYPE = {
|
|
7
8
|
VIDEOS: 'Videos',
|
|
@@ -9,26 +10,23 @@ export const MEDIA_TYPE = {
|
|
|
9
10
|
}
|
|
10
11
|
|
|
11
12
|
export async function saveMedia(opts: Taro.saveImageToPhotosAlbum.Option|Taro.saveVideoToPhotosAlbum.Option, type:string, API:string):Promise<Taro.General.CallbackResult> {
|
|
13
|
+
const { filePath, success, fail, complete } = opts
|
|
12
14
|
const status = await askAsyncPermissions(Permissions.CAMERA_ROLL)
|
|
13
15
|
if (status !== 'granted') {
|
|
14
16
|
const res = { errMsg: 'Permissions denied!' }
|
|
15
|
-
return
|
|
17
|
+
return errorHandler(fail, complete)(res)
|
|
16
18
|
}
|
|
17
|
-
|
|
19
|
+
|
|
18
20
|
const res: any = { errMsg: `${API}:ok` }
|
|
19
21
|
const saveType = (type === 'video' || type === 'photo') ? type : 'auto'
|
|
20
|
-
|
|
21
|
-
.
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
fail?.(res)
|
|
29
|
-
complete?.(res)
|
|
30
|
-
return Promise.reject(res)
|
|
31
|
-
})
|
|
22
|
+
try {
|
|
23
|
+
const url: string = await CameraRoll.save(filePath, { type: saveType })
|
|
24
|
+
res.path = url;
|
|
25
|
+
return successHandler(success, complete)(res)
|
|
26
|
+
} catch (err) {
|
|
27
|
+
res.errMsg = err.message
|
|
28
|
+
return errorHandler(fail, complete)(res)
|
|
29
|
+
}
|
|
32
30
|
}
|
|
33
31
|
|
|
34
32
|
export async function chooseMedia(opts: Taro.chooseImage.Option|Taro.chooseVideo.Option, mediaTypes: string): Promise<Taro.General.CallbackResult> {
|
|
@@ -45,50 +43,42 @@ export async function chooseMedia(opts: Taro.chooseImage.Option|Taro.chooseVideo
|
|
|
45
43
|
const status = isCamera ? await askAsyncPermissions(Permissions.CAMERA) : await askAsyncPermissions(Permissions.CAMERA_ROLL)
|
|
46
44
|
if (status !== 'granted') {
|
|
47
45
|
const res = { errMsg: 'Permissions denied!' }
|
|
48
|
-
return
|
|
46
|
+
return errorHandler(fail, complete)(res)
|
|
49
47
|
}
|
|
50
48
|
|
|
51
|
-
let
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
resp.path = uri
|
|
49
|
+
let launchMediaAsync = isCamera ? ImagePicker.launchCameraAsync : ImagePicker.launchImageLibraryAsync
|
|
50
|
+
try {
|
|
51
|
+
const resp: any = await launchMediaAsync(options as any)
|
|
52
|
+
const { uri, duration, width, height } = resp
|
|
53
|
+
resp.path = uri
|
|
57
54
|
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
}
|
|
66
|
-
} else {
|
|
67
|
-
res = {
|
|
68
|
-
tempFilePaths: [uri],
|
|
69
|
-
tempFiles: [resp]
|
|
70
|
-
}
|
|
55
|
+
let res: any = {}
|
|
56
|
+
if (mediaTypes === MEDIA_TYPE.VIDEOS) {
|
|
57
|
+
res = {
|
|
58
|
+
tempFilePath: uri,
|
|
59
|
+
duration,
|
|
60
|
+
width,
|
|
61
|
+
height
|
|
71
62
|
}
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
} else {
|
|
77
|
-
const res = {
|
|
78
|
-
errMsg: mediaTypes === MEDIA_TYPE.VIDEOS ? 'chooseVideo:fail cancel' : 'chooseImage:fail cancel',
|
|
79
|
-
}
|
|
80
|
-
fail?.(res)
|
|
81
|
-
complete?.(res)
|
|
82
|
-
reject(res)
|
|
63
|
+
} else {
|
|
64
|
+
res = {
|
|
65
|
+
tempFilePaths: [uri],
|
|
66
|
+
tempFiles: [resp]
|
|
83
67
|
}
|
|
84
|
-
}
|
|
68
|
+
}
|
|
69
|
+
if (res.tempFilePath || (!!res.tempFilePaths && res.tempFilePaths.length > 0)) {
|
|
70
|
+
return successHandler(success, complete)(res)
|
|
71
|
+
} else {
|
|
85
72
|
const res = {
|
|
86
|
-
errMsg: mediaTypes === MEDIA_TYPE.VIDEOS ? 'chooseVideo
|
|
87
|
-
err
|
|
73
|
+
errMsg: mediaTypes === MEDIA_TYPE.VIDEOS ? 'chooseVideo:fail cancel' : 'chooseImage:fail cancel',
|
|
88
74
|
}
|
|
89
|
-
fail
|
|
90
|
-
|
|
91
|
-
|
|
92
|
-
|
|
93
|
-
|
|
75
|
+
return errorHandler(fail, complete)(res)
|
|
76
|
+
}
|
|
77
|
+
} catch (err) {
|
|
78
|
+
const res = {
|
|
79
|
+
errMsg: mediaTypes === MEDIA_TYPE.VIDEOS ? 'chooseVideo fail' : 'chooseImage fail',
|
|
80
|
+
err
|
|
81
|
+
}
|
|
82
|
+
return errorHandler(fail, complete)(res)
|
|
83
|
+
}
|
|
94
84
|
}
|
package/src/lib/network.ts
CHANGED
|
@@ -13,14 +13,14 @@ export function getNetworkType(opts: Taro.getNetworkType.Option = {}): Promise<T
|
|
|
13
13
|
.then((connectionInfo) => {
|
|
14
14
|
res.networkType = connectionInfo.type
|
|
15
15
|
res.errMsg = 'getNetworkType:ok'
|
|
16
|
-
success
|
|
17
|
-
complete
|
|
16
|
+
success?.(res)
|
|
17
|
+
complete?.(res)
|
|
18
18
|
|
|
19
19
|
resolve(res)
|
|
20
20
|
}).catch((err) => {
|
|
21
21
|
res.errMsg = err.message
|
|
22
|
-
fail
|
|
23
|
-
complete
|
|
22
|
+
fail?.(res)
|
|
23
|
+
complete?.(res)
|
|
24
24
|
|
|
25
25
|
reject(err)
|
|
26
26
|
})
|