@tarojs/taro-rn 3.5.0-alpha.13 → 3.5.0-alpha.16

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.
Files changed (58) hide show
  1. package/dist/lib/Mask.js +2 -1
  2. package/dist/lib/Mask.js.map +1 -1
  3. package/dist/lib/Popup.js +2 -1
  4. package/dist/lib/Popup.js.map +1 -1
  5. package/dist/lib/createCameraContext/index.js +38 -28
  6. package/dist/lib/createCameraContext/index.js.map +1 -1
  7. package/dist/lib/getLocation/index.js +3 -4
  8. package/dist/lib/getLocation/index.js.map +1 -1
  9. package/dist/lib/getRecorderManager/index.js +7 -11
  10. package/dist/lib/getRecorderManager/index.js.map +1 -1
  11. package/dist/lib/media.js +5 -6
  12. package/dist/lib/media.js.map +1 -1
  13. package/dist/lib/permission.js +18 -17
  14. package/dist/lib/permission.js.map +1 -1
  15. package/dist/lib/request/index.js +1 -1
  16. package/dist/lib/request/index.js.map +1 -1
  17. package/dist/lib/scanCode/index.js +4 -6
  18. package/dist/lib/scanCode/index.js.map +1 -1
  19. package/dist/lib/showActionSheet/ActionSheet.js +2 -1
  20. package/dist/lib/showActionSheet/ActionSheet.js.map +1 -1
  21. package/dist/lib/showModal/Dialog.js +4 -3
  22. package/dist/lib/showModal/Dialog.js.map +1 -1
  23. package/dist/setup.js +18 -2
  24. package/dist/setup.js.map +1 -1
  25. package/package.json +48 -47
  26. package/src/__tests__/__snapshots__/{scanCode.test.js.snap → scanCode.test.tsx.snap} +20 -2
  27. package/src/__tests__/{clipboard.test.js → clipboard.test.ts} +1 -0
  28. package/src/__tests__/{deviceMotion.test.js → deviceMotion.test.ts} +0 -0
  29. package/src/__tests__/{geolocation.test.js → geolocation.test.ts} +10 -11
  30. package/src/__tests__/{interactive.test.js → interactive.test.tsx} +0 -0
  31. package/src/__tests__/{keyboard.test.js → keyboard.test.ts} +0 -0
  32. package/src/__tests__/{media.test.js → media.test.ts} +2 -0
  33. package/src/__tests__/{network.test.js → network.test.ts} +0 -2
  34. package/src/__tests__/{others.test.js → others.test.ts} +0 -0
  35. package/src/__tests__/{phone.test.js → phone.test.ts} +0 -0
  36. package/src/__tests__/{request.test.js → request.test.ts} +6 -1
  37. package/src/__tests__/{scanCode.test.js → scanCode.test.tsx} +1 -0
  38. package/src/__tests__/{storage.test.js → storage.test.ts} +9 -5
  39. package/src/__tests__/{system.test.js → system.test.ts} +0 -0
  40. package/src/__tests__/{vibrate.test.js → vibrate.test.ts} +0 -0
  41. package/src/__tests__/{websocket.test.js → websocket.test.ts} +8 -6
  42. package/src/lib/Mask.tsx +2 -1
  43. package/src/lib/Popup.tsx +2 -1
  44. package/src/lib/createCameraContext/index.ts +30 -21
  45. package/src/lib/getLocation/index.ts +3 -4
  46. package/src/lib/getRecorderManager/index.ts +7 -11
  47. package/src/lib/media.ts +5 -6
  48. package/src/lib/permission.ts +21 -17
  49. package/src/lib/request/index.ts +1 -1
  50. package/src/lib/scanCode/index.tsx +3 -6
  51. package/src/lib/showActionSheet/ActionSheet.tsx +2 -2
  52. package/src/lib/showModal/Dialog.tsx +4 -4
  53. package/src/setup.ts +22 -3
  54. package/types/overlay.d.ts +9 -0
  55. package/dist/utils/premissions.js +0 -17
  56. package/dist/utils/premissions.js.map +0 -1
  57. package/src/__tests__/__mock__/mockExpoPermissions.js +0 -8
  58. package/src/utils/premissions.ts +0 -6
package/dist/setup.js CHANGED
@@ -39,7 +39,6 @@ jest.doMock('react-native', () => {
39
39
  });
40
40
  jest.doMock('expo-modules-core', () => {
41
41
  const unimodules = jest.requireActual('expo-modules-core');
42
- const permisson = jest.requireActual('./__tests__/__mock__/mockExpoPermissions');
43
42
  const { NativeModulesProxy } = unimodules;
44
43
  NativeModulesProxy.ExpoLocation = {
45
44
  getCurrentPositionAsync: jest.fn(() => Promise.resolve({
@@ -52,7 +51,24 @@ jest.doMock('expo-modules-core', () => {
52
51
  }
53
52
  }))
54
53
  };
55
- NativeModulesProxy.ExpoPermissions = permisson;
56
54
  return unimodules;
57
55
  });
56
+ const grantedPromise = jest.fn(() => Promise.resolve({
57
+ granted: true
58
+ }));
59
+ jest.doMock('expo-image-picker', () => {
60
+ const expoImagePicker = jest.requireActual('expo-image-picker');
61
+ expoImagePicker.requestMediaLibraryPermissionsAsync = grantedPromise;
62
+ return expoImagePicker;
63
+ });
64
+ jest.doMock('expo-location', () => {
65
+ const expoLocation = jest.requireActual('expo-location');
66
+ expoLocation.requestForegroundPermissionsAsync = grantedPromise;
67
+ return expoLocation;
68
+ });
69
+ jest.doMock('expo-barcode-scanner', () => {
70
+ const expoBarcodeSacnner = jest.requireActual('expo-barcode-scanner');
71
+ expoBarcodeSacnner.requestPermissionsAsync = grantedPromise;
72
+ return expoBarcodeSacnner;
73
+ });
58
74
  //# sourceMappingURL=setup.js.map
package/dist/setup.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"setup.js","sourceRoot":"","sources":["../src/setup.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"setup.js","sourceRoot":"","sources":["../src/setup.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@tarojs/taro-rn",
3
- "version": "3.5.0-alpha.13",
3
+ "version": "3.5.0-alpha.16",
4
4
  "description": "Taro RN framework",
5
5
  "main": "dist/index.js",
6
6
  "typings": "types/index.d.ts",
@@ -11,17 +11,6 @@
11
11
  "apiList.js",
12
12
  "libList.js"
13
13
  ],
14
- "scripts": {
15
- "assets": "cpy 'src/**/*.png' '!src/__tests__/*' dist",
16
- "build": "rimraf ./dist && tsc && yarn assets && yarn script",
17
- "dev": "yarn assets && tsc --watch",
18
- "lint": "eslint .",
19
- "test": "jest --silent",
20
- "test:dev": "jest --watch",
21
- "test:ci": "jest -i --silent --coverage false",
22
- "test:coverage": "jest --coverage",
23
- "script": "node ./script"
24
- },
25
14
  "repository": {
26
15
  "type": "git",
27
16
  "url": "git+https://github.com/NervJS/taro.git"
@@ -32,62 +21,74 @@
32
21
  "author": "O2Team",
33
22
  "license": "MIT",
34
23
  "dependencies": {
35
- "@react-native-async-storage/async-storage": "~1.15.11",
24
+ "@react-native-async-storage/async-storage": "~1.17.7",
36
25
  "@react-native-community/cameraroll": "~4.1.2",
37
26
  "@react-native-community/clipboard": "~1.5.1",
38
- "@react-native-community/geolocation": "~2.0.2",
39
- "@react-native-community/netinfo": "~7.1.2",
40
- "@tarojs/runtime-rn": "3.5.0-alpha.13",
27
+ "@react-native-community/geolocation": "~2.1.0",
28
+ "@react-native-community/netinfo": "~9.3.0",
29
+ "@tarojs/runtime-rn": "3.5.0-alpha.16",
41
30
  "babel-preset-expo": "~9.0.2",
42
31
  "base64-js": "^1.3.0",
43
- "expo-av": "~11.2.3",
44
- "expo-barcode-scanner": "~11.3.0",
45
- "expo-brightness": "~10.2.0",
46
- "expo-camera": "~12.2.0",
47
- "expo-file-system": "~14.0.0",
32
+ "deprecated-react-native-prop-types": "^2.3.0",
33
+ "expo-av": "~12.0.2",
34
+ "expo-barcode-scanner": "~11.4.0",
35
+ "expo-brightness": "~10.3.0",
36
+ "expo-camera": "~12.3.0",
37
+ "expo-file-system": "~14.1.0",
48
38
  "expo-image-picker": "~13.1.1",
49
- "expo-keep-awake": "~10.1.1",
50
- "expo-location": "~14.0.2",
51
- "expo-modules-core": "~0.9.1",
52
- "expo-permissions": "~13.2.0",
53
- "expo-sensors": "~11.1.1",
39
+ "expo-keep-awake": "~10.2.0",
40
+ "expo-location": "~14.3.0",
41
+ "expo-modules-core": "~0.11.3",
42
+ "expo-sensors": "~11.4.0",
54
43
  "nullthrows": "^1.1.1",
55
- "react-native-device-info": "~8.4.8",
44
+ "prop-types": "^15.8.1",
45
+ "react-native-device-info": "~10.0.2",
56
46
  "react-native-image-resizer": "~1.4.5",
57
47
  "react-native-image-zoom-viewer": "^3.0.1",
58
48
  "react-native-root-siblings": "^4.1.1",
59
49
  "react-native-root-toast": "^3.0.1",
60
- "react-native-safe-area-context": "~3.4.1",
50
+ "react-native-safe-area-context": "~4.3.1",
61
51
  "react-native-stylekit": "^1.0.0",
62
52
  "react-native-syan-image-picker": "0.5.3"
63
53
  },
64
54
  "devDependencies": {
65
- "@tarojs/taro": "3.5.0-alpha.13",
55
+ "@types/jest": "^27.4.1",
66
56
  "@types/react": "^17.0.0",
67
- "@types/react-native": "0.67.0",
57
+ "@types/react-native": "^0.67.7",
68
58
  "fbjs-scripts": "^3.0.1",
69
- "react-native": "^0.67.3"
59
+ "metro-react-native-babel-preset": "^0.67.0",
60
+ "react-native": "^0.68.2"
70
61
  },
71
62
  "peerDependencies": {
72
- "@react-native-async-storage/async-storage": "~1.15.11",
63
+ "@react-native-async-storage/async-storage": "~1.17.7",
73
64
  "@react-native-community/cameraroll": "~4.1.2",
74
65
  "@react-native-community/clipboard": "~1.5.1",
75
- "@react-native-community/geolocation": "~2.0.2",
76
- "@react-native-community/netinfo": "~7.1.2",
77
- "expo-av": "~11.2.3",
78
- "expo-barcode-scanner": "~11.3.0",
79
- "expo-brightness": "~10.2.0",
80
- "expo-camera": "~12.2.0",
81
- "expo-file-system": "~14.0.0",
66
+ "@react-native-community/geolocation": "~2.1.0",
67
+ "@react-native-community/netinfo": "~9.3.0",
68
+ "expo-av": "~12.0.2",
69
+ "expo-barcode-scanner": "~11.4.0",
70
+ "expo-brightness": "~10.3.0",
71
+ "expo-camera": "~12.3.0",
72
+ "expo-file-system": "~14.1.0",
82
73
  "expo-image-picker": "~13.1.1",
83
- "expo-keep-awake": "~10.1.1",
84
- "expo-modules-core": "~0.9.1",
85
- "expo-permissions": "~13.2.0",
86
- "expo-sensors": "~11.1.1",
87
- "react-native-device-info": "~8.4.8",
74
+ "expo-keep-awake": "~10.2.0",
75
+ "expo-location": "~14.3.0",
76
+ "expo-modules-core": "~0.11.3",
77
+ "expo-sensors": "~11.4.0",
78
+ "react-native-device-info": "~10.0.2",
88
79
  "react-native-image-resizer": "~1.4.5",
89
- "react-native-safe-area-context": "~3.4.1",
80
+ "react-native-safe-area-context": "~4.3.1",
90
81
  "react-native-syan-image-picker": "0.5.3"
91
82
  },
92
- "gitHead": "1e201315913fbeb3a71f14c93a5e7a2fa490e4c4"
93
- }
83
+ "scripts": {
84
+ "assets": "cpy 'src/**/*.png' '!src/__tests__/*' dist",
85
+ "build": "rimraf ./dist && tsc && pnpm run assets && pnpm run script",
86
+ "dev": "pnpm run assets && tsc --watch",
87
+ "lint": "eslint .",
88
+ "test": "jest --silent",
89
+ "test:dev": "jest --watch",
90
+ "test:ci": "jest -i --silent --coverage false",
91
+ "test:coverage": "jest --coverage",
92
+ "script": "node ./script"
93
+ }
94
+ }
@@ -64,7 +64,16 @@ exports[`scanCode should render scanCode success 1`] = `
64
64
  }
65
65
  }
66
66
  >
67
- <RNCSafeAreaView>
67
+ <RNCSafeAreaView
68
+ edges={
69
+ Array [
70
+ "bottom",
71
+ "left",
72
+ "right",
73
+ "top",
74
+ ]
75
+ }
76
+ >
68
77
  <Image
69
78
  source={1}
70
79
  style={
@@ -97,7 +106,16 @@ exports[`scanCode should render scanCode success 1`] = `
97
106
  }
98
107
  }
99
108
  >
100
- <RNCSafeAreaView>
109
+ <RNCSafeAreaView
110
+ edges={
111
+ Array [
112
+ "bottom",
113
+ "left",
114
+ "right",
115
+ "top",
116
+ ]
117
+ }
118
+ >
101
119
  <Image
102
120
  source={1}
103
121
  style={
@@ -44,6 +44,7 @@ describe('clipboard', () => {
44
44
 
45
45
  // expect.assertions(6)
46
46
  return Taro.setClipboardData({
47
+ // @ts-ignore
47
48
  data,
48
49
  success,
49
50
  fail,
@@ -38,22 +38,21 @@ describe('location', () => {
38
38
  const fail = jest.fn()
39
39
  const complete = jest.fn()
40
40
 
41
- const expectData = {
42
- latitude: expect.any(Number),
43
- longitude: expect.any(Number),
44
- speed: expect.any(Number),
45
- accuracy: expect.any(Number),
46
- altitude: expect.any(Number),
47
- verticalAccuracy: expect.any(Number),
48
- horizontalAccuracy: expect.any(Number),
49
- }
41
+ // const expectData = {
42
+ // latitude: expect.any(Number),
43
+ // longitude: expect.any(Number),
44
+ // speed: expect.any(Number),
45
+ // accuracy: expect.any(Number),
46
+ // altitude: expect.any(Number),
47
+ // verticalAccuracy: expect.any(Number),
48
+ // horizontalAccuracy: expect.any(Number),
49
+ // }
50
50
 
51
51
  Taro.getLocation({
52
52
  success,
53
53
  fail,
54
54
  complete
55
- })
56
- setTimeout(() => {
55
+ }).then(() => {
57
56
  expect(mockGetCurrentPosition.mock.calls.length).toBe(1)
58
57
  })
59
58
  })
@@ -68,6 +68,7 @@ describe('media', () => {
68
68
  expect(fail.mock.calls.length).toBe(0)
69
69
  expect(complete.mock.calls.length).toBe(1)
70
70
  expect(complete.mock.calls[0][0]).toEqual({ errMsg: expectMsg, path })
71
+ // @ts-ignore
71
72
  expect(res.path).toEqual(path)
72
73
  })
73
74
  })
@@ -95,6 +96,7 @@ describe('media', () => {
95
96
  expect(fail.mock.calls.length).toBe(0)
96
97
  expect(complete.mock.calls.length).toBe(1)
97
98
  expect(complete.mock.calls[0][0]).toEqual({ errMsg: expectMsg, path })
99
+ // @ts-ignore
98
100
  expect(res.path).toEqual(path)
99
101
  })
100
102
  })
@@ -1,6 +1,4 @@
1
1
  import * as network from '../lib/network'
2
-
3
- // react_native_1.NativeModules.RNCNetInfo setup mock
4
2
  const Taro = Object.assign({}, network)
5
3
 
6
4
  describe('network', () => {
File without changes
File without changes
@@ -19,6 +19,7 @@ describe('request', () => {
19
19
  })
20
20
  })
21
21
  })
22
+ // @ts-ignore
22
23
  global.fetch = fetch
23
24
  })
24
25
 
@@ -54,6 +55,7 @@ describe('request', () => {
54
55
  url,
55
56
  responseType: 'text'
56
57
  }
58
+ // @ts-ignore
57
59
  const res = await Taro.request(options)
58
60
  expect(res.data).toEqual(expectData)
59
61
  })
@@ -89,7 +91,7 @@ describe('request', () => {
89
91
  })
90
92
  })
91
93
  })
92
-
94
+ // @ts-ignore
93
95
  global.fetch = fetch
94
96
 
95
97
  const url = 'https://test.taro.com/v1'
@@ -102,6 +104,7 @@ describe('request', () => {
102
104
  }
103
105
 
104
106
  const expectUrl = `https://test.taro.com/v1?${encodeURIComponent('a')}=${encodeURIComponent(1)}`
107
+ // @ts-ignore
105
108
  const res = await Taro.request(optionsOne)
106
109
  expect(res.data.url).toMatch(expectUrl)
107
110
 
@@ -118,6 +121,7 @@ describe('request', () => {
118
121
  }
119
122
 
120
123
  const expectBodyOne = JSON.stringify({ a: 1 })
124
+ // @ts-ignore
121
125
  const resTwo = await Taro.request(optionsTwo)
122
126
  expect(resTwo.data.params.body).toMatch(expectBodyOne)
123
127
 
@@ -134,6 +138,7 @@ describe('request', () => {
134
138
  }
135
139
 
136
140
  const expectBodyTwo = `${encodeURIComponent('a')}=${encodeURIComponent(1)}`
141
+ // @ts-ignore
137
142
  const resThree = await Taro.request(optionsThree)
138
143
  expect(resThree.data.params.body).toMatch(expectBodyTwo)
139
144
  })
@@ -5,6 +5,7 @@ import { scanCode } from '../lib/scanCode'
5
5
 
6
6
  describe('scanCode', () => {
7
7
  it('should render scanCode success', async () => {
8
+ // @ts-ignore
8
9
  const { toJSON, getByLabelText } = render(<RootSiblingParent />)
9
10
  scanCode()
10
11
  await waitFor(() => getByLabelText('Close'));
@@ -42,7 +42,7 @@ describe('storage', () => {
42
42
  expect(complete.mock.calls[0][0]).toEqual({ errMsg: expectMsg })
43
43
  expect(res.errMsg).toMatch(expectMsg)
44
44
 
45
- const getData = await AsyncStorage.getItem(key)
45
+ const getData = await AsyncStorage.getItem(key) || ''
46
46
  expect(JSON.parse(getData)).toBe(data)
47
47
  })
48
48
 
@@ -56,7 +56,7 @@ describe('storage', () => {
56
56
  const complete = jest.fn()
57
57
 
58
58
  expect.assertions(4)
59
-
59
+ // @ts-ignore
60
60
  return Taro.setStorage({
61
61
  data,
62
62
  success,
@@ -112,7 +112,7 @@ describe('storage', () => {
112
112
  const complete = jest.fn()
113
113
 
114
114
  await AsyncStorage.setItem(key, JSON.stringify(data))
115
- const getData = await AsyncStorage.getItem(key)
115
+ const getData = await AsyncStorage.getItem(key) || ''
116
116
 
117
117
  expect(JSON.parse(getData)).toBe(data)
118
118
 
@@ -132,6 +132,7 @@ describe('storage', () => {
132
132
  expect(complete.mock.calls.length).toBe(1)
133
133
  expect(complete.mock.calls[0][0]).toEqual(res)
134
134
  expect(res.errMsg).toMatch(expectMsg)
135
+ // @ts-ignore
135
136
  expect(res.data).toBeUndefined()
136
137
  })
137
138
  })
@@ -164,8 +165,11 @@ describe('storage', () => {
164
165
  expect(complete.mock.calls.length).toBe(1)
165
166
  expect(complete.mock.calls[0][0]).toEqual(res)
166
167
  expect(res.errMsg).toMatch(expectMsg)
168
+ // @ts-ignore
167
169
  expect(res.keys).toEqual([key1, key2])
170
+ // @ts-ignore
168
171
  expect(res.currentSize).toBe(+(12 / 1024).toFixed(2))
172
+ // @ts-ignore
169
173
  expect(res.limitSize).toBe(Infinity)
170
174
  })
171
175
  })
@@ -180,8 +184,8 @@ describe('storage', () => {
180
184
  await AsyncStorage.setItem(key1, JSON.stringify(data))
181
185
  await AsyncStorage.setItem(key2, JSON.stringify(data))
182
186
 
183
- const getData1 = await AsyncStorage.getItem(key1)
184
- const getData2 = await AsyncStorage.getItem(key2)
187
+ const getData1 = await AsyncStorage.getItem(key1) || ''
188
+ const getData2 = await AsyncStorage.getItem(key2) || ''
185
189
 
186
190
  expect(JSON.parse(getData1)).toBe(data)
187
191
  expect(JSON.parse(getData2)).toBe(data)
File without changes
@@ -5,6 +5,7 @@ const Taro = Object.assign({}, connectSocket)
5
5
 
6
6
  describe('websocket', () => {
7
7
  beforeEach(() => {
8
+ // @ts-ignore
8
9
  global.WebSocket = WebSocket
9
10
  })
10
11
 
@@ -16,6 +17,7 @@ describe('websocket', () => {
16
17
  expect.assertions(6)
17
18
 
18
19
  return Taro.connectSocket({
20
+ // @ts-ignore
19
21
  url: {},
20
22
  success,
21
23
  fail,
@@ -61,8 +63,8 @@ describe('websocket', () => {
61
63
  expect(err.errMsg).toMatch(expectErrMsg)
62
64
  })
63
65
 
64
- socketTaskOne.close()
65
- socketTaskTwo.close()
66
+ socketTaskOne.close({})
67
+ socketTaskTwo.close({})
66
68
  })
67
69
 
68
70
  test('connection关闭的时候会重置总的socketTask数量', async () => {
@@ -74,7 +76,7 @@ describe('websocket', () => {
74
76
 
75
77
  const socketTaskOne = await Taro.connectSocket({ url: 'wss://localhost:8080', success })
76
78
  expect(success.mock.calls.length).toBe(1)
77
- socketTaskOne.close()
79
+ socketTaskOne.close({})
78
80
 
79
81
  const socketTaskTwo = await Taro.connectSocket({ url: 'wss://localhost:8090', success })
80
82
  expect(success.mock.calls.length).toBe(2)
@@ -99,10 +101,10 @@ describe('websocket', () => {
99
101
  errMsg: 'connectSocket:ok'
100
102
  }))
101
103
 
102
- socketTaskTwo.close()
103
- socketTaskThree.close()
104
+ socketTaskTwo.close({})
105
+ socketTaskThree.close({})
104
106
  })
105
- // eslint-disable-next-line
107
+ // @ts-ignore
106
108
  test('should work basically', async (done) => {
107
109
  const fakeURL = 'wss://localhost:8080'
108
110
  const mockServer = new Server(fakeURL)
package/src/lib/Mask.tsx CHANGED
@@ -1,6 +1,7 @@
1
1
  import React from 'react'
2
2
  import PropTypes from 'prop-types'
3
- import { StyleSheet, TouchableWithoutFeedback, View, ViewPropTypes } from 'react-native'
3
+ import { StyleSheet, TouchableWithoutFeedback, View } from 'react-native'
4
+ import { ViewPropTypes } from 'deprecated-react-native-prop-types'
4
5
 
5
6
  const styles = StyleSheet.create({
6
7
  mask: {
package/src/lib/Popup.tsx CHANGED
@@ -1,7 +1,8 @@
1
1
  import React, { Component } from 'react'
2
2
 
3
3
  import PropTypes from 'prop-types'
4
- import { Modal, View, StyleSheet, Dimensions, Animated, Easing, ViewPropTypes } from 'react-native'
4
+ import { Modal, View, StyleSheet, Dimensions, Animated, Easing } from 'react-native'
5
+ import { ViewPropTypes } from 'deprecated-react-native-prop-types'
5
6
  import { Mask } from './Mask'
6
7
 
7
8
  const { width, height } = Dimensions.get('window')
@@ -1,5 +1,5 @@
1
- import * as Permissions from 'expo-permissions'
2
1
  import { errorHandler, successHandler } from '../../utils'
2
+ import { requestCameraPermissionsAsync, requestMicrophonePermissionsAsync } from 'expo-camera'
3
3
  const globalAny: any = global
4
4
 
5
5
  class CameraContext {
@@ -14,30 +14,39 @@ class CameraContext {
14
14
  * 开始录像
15
15
  */
16
16
  startRecord = (option: Taro.CameraContext.StartRecordOption) => {
17
- Permissions.askAsync(Permissions.CAMERA, Permissions.AUDIO_RECORDING).then(() => {
18
- this.cameraRef?.recordAsync().then((res) => {
19
- const { uri } = res
20
- const result = {
21
- tempVideoPath: uri,
22
- tempThumbPath: '',
23
- errMsg: 'stopRecord: ok'
17
+ Promise.all([requestCameraPermissionsAsync(), requestMicrophonePermissionsAsync()]).then(([cameraPermission, microphonePermission]) => {
18
+ if(cameraPermission.granted && microphonePermission.granted) {
19
+ this.cameraRef?.recordAsync().then((res) => {
20
+ const { uri } = res
21
+ const result = {
22
+ tempVideoPath: uri,
23
+ tempThumbPath: '',
24
+ errMsg: 'stopRecord: ok'
25
+ }
26
+ this.recordCallback?.success?.(result)
27
+ }).catch((e) => {
28
+ const res = {
29
+ errMsg: e.message
30
+ }
31
+ option?.fail?.(res)
32
+ option?.complete?.(res)
33
+ this.recordCallback?.fail?.({ errMsg: e })
34
+ }).finally(() => {
35
+ this.recordCallback?.complete?.({ errMsg: '' })
36
+ })
37
+ const res = {
38
+ errMsg: 'startRecord: ok'
24
39
  }
25
- this.recordCallback?.success?.(result)
26
- }).catch((e) => {
40
+ option?.success?.(res)
41
+ option?.complete?.(res)
42
+ } else {
27
43
  const res = {
28
- errMsg: e.message
44
+ errMsg: 'startRecord: fail',
45
+ err: Error('You have not enabled camera or microphone permissions')
29
46
  }
30
47
  option?.fail?.(res)
31
48
  option?.complete?.(res)
32
- this.recordCallback?.fail?.({ errMsg: e })
33
- }).finally(() => {
34
- this.recordCallback?.complete?.({ errMsg: '' })
35
- })
36
- const res = {
37
- errMsg: 'startRecord: ok'
38
49
  }
39
- option?.success?.(res)
40
- option?.complete?.(res)
41
50
  })
42
51
  }
43
52
 
@@ -67,8 +76,8 @@ class CameraContext {
67
76
  break
68
77
  }
69
78
  try {
70
- const { status } = await Permissions.askAsync(Permissions.CAMERA, Permissions.AUDIO_RECORDING)
71
- if (status === 'granted') {
79
+ const { granted } = await requestCameraPermissionsAsync()
80
+ if (granted) {
72
81
  if (this.cameraRef?.takePictureAsync) {
73
82
  const { uri } = await this.cameraRef.takePictureAsync({ quality: _quality })
74
83
  const res = {
@@ -1,14 +1,13 @@
1
1
  import Geolocation from '@react-native-community/geolocation'
2
- import * as Permissions from 'expo-permissions'
3
- import { askAsyncPermissions } from '../../utils/premissions'
2
+ import { requestForegroundPermissionsAsync } from 'expo-location'
4
3
  import { errorHandler } from '../../utils'
5
4
 
6
5
  export async function getLocation(opts: Taro.getLocation.Option = {}): Promise<Taro.getLocation.SuccessCallbackResult> {
7
6
  const { isHighAccuracy = false, highAccuracyExpireTime = 3000, success, fail, complete } = opts
8
7
 
9
8
  try {
10
- const status = await askAsyncPermissions(Permissions.LOCATION)
11
- if (status !== 'granted') {
9
+ const { granted } = await requestForegroundPermissionsAsync()
10
+ if (!granted) {
12
11
  const res = { errMsg: 'Permissions denied!' }
13
12
  return errorHandler(fail, complete)(res)
14
13
  }
@@ -1,5 +1,4 @@
1
1
  import { Audio } from 'expo-av'
2
- import * as Permissions from 'expo-permissions'
3
2
  import * as FileSystem from 'expo-file-system'
4
3
 
5
4
  class RecorderManager {
@@ -15,15 +14,15 @@ class RecorderManager {
15
14
  private static RecordingOptions = {
16
15
  android: {
17
16
  extension: '.m4a',
18
- outputFormat: Audio.RECORDING_OPTION_ANDROID_OUTPUT_FORMAT_MPEG_4,
19
- audioEncoder: Audio.RECORDING_OPTION_ANDROID_AUDIO_ENCODER_AAC,
17
+ outputFormat: Audio.AndroidOutputFormat.MPEG_4,
18
+ audioEncoder: Audio.AndroidAudioEncoder.AAC,
20
19
  sampleRate: 8000,
21
20
  numberOfChannels: 2,
22
21
  bitRate: 48000
23
22
  },
24
23
  ios: {
25
24
  extension: '.caf',
26
- audioQuality: Audio.RECORDING_OPTION_IOS_AUDIO_QUALITY_MAX,
25
+ audioQuality: Audio.IOSAudioQuality.MAX,
27
26
  sampleRate: 8000,
28
27
  numberOfChannels: 2,
29
28
  bitRate: 48000,
@@ -52,13 +51,10 @@ class RecorderManager {
52
51
  * @param {string} [opts.audioSource='auto'] - 指定录音的音频输入源,可通过 wx.getAvailableAudioSources() 获取当前可用的音频源 ❌
53
52
  */
54
53
  async start (opts = {}) {
55
- const { status } = await Permissions.getAsync(Permissions.AUDIO_RECORDING)
56
- if (status !== 'granted') {
57
- const { status } = await Permissions.askAsync(Permissions.AUDIO_RECORDING)
58
- if (status !== 'granted') {
59
- const res = { errMsg: 'Permissions denied!' }
60
- return Promise.reject(res)
61
- }
54
+ const { granted } = await Audio.requestPermissionsAsync()
55
+ if (!granted) {
56
+ const res = { errMsg: 'Permissions denied!' }
57
+ return Promise.reject(res)
62
58
  }
63
59
 
64
60
  const {