gke*_*ley 5 permissions android-permissions reactjs react-native react-native-permissions
我在我的 React Native 应用程序中使用react-native-camera-roll/camera-roll@5.2.0。对于 Android 13,READ_EXTERNAL_STORAGE 权限已替换为 READ_MEDIA_IMAGES。我使用以下代码来检查是否已授予权限:
const permission = Platform.Version >= 33 ? PermissionsAndroid.PERMISSIONS.READ_MEDIA_IMAGES : PermissionsAndroid.PERMISSIONS.READ_EXTERNAL_STORAGE;
const hasPermission = await PermissionsAndroid.check(permission);
Run Code Online (Sandbox Code Playgroud)
然而,PermissionsAndroid.PERMISSIONS不包含READ_MEDIA_IMAGES,所以permission也是undefined。传递undefined给PermissionsAndroid.check()会使应用程序挂起。
我想知道的是:
我正在使用react-native@0.65.3。PermissionsAndroid.PERMISSIONS.READ_MEDIA_IMAGES 直到 0.70 才可用,所以除非我更新到 0.70,否则permission将始终是undefined. 我该如何解决这个问题?
解决方案之一是使用单独的维护良好的库进行权限处理,称为https://github.com/zoontek/react-native-permissions
如果你想从 RN 获取它,它应该包含在 0.71 中,基于此 PR https://github.com/facebook/react-native/commit/0a854c7c8b7ffc382c43fa460651a4b4de34c3c7
根据上面的 PR,您还可以使用https://github.com/ds300/patch-package从本地更改创建补丁。但是,如果您想使用 RN 的修补版本,您应该遵循此说明https://reactnative.dev/contributing/how-to-build-from-source
| 归档时间: |
|
| 查看次数: |
5111 次 |
| 最近记录: |