【问题标题】:React Native/iOS Camera Permission: Show alert to turn on permission from settings for users who disallowed camera access?React Native/iOS 相机权限:显示警报以从设置中为不允许相机访问的用户打开权限?
【发布时间】:2020-12-23 06:49:23
【问题描述】:

我正在使用 React Native 构建一个应用程序,照片上传是它的关键功能之一。这是我想要做的:

  1. 当用户点击按钮打开相机胶卷时,告知用户是否允许相机访问。
  2. 如果用户不允许,则显示提醒以要求用户从设置中打开权限,以确保在应用上获得适当的体验。

我应该从哪里着手解决这个问题?我一般是编程新手,对本机代码一点也不熟悉。我知道这是一个高级问题,因此将不胜感激一些高级指导。谢谢!

【问题讨论】:

    标签: ios react-native


    【解决方案1】:

    您可以开始查看 react-native-permissions 模块。它允许您请求移动应用程序可能需要的任何类型的权限,并且对话是本地处理的,因此您不必担心自己构建警报。

    https://github.com/zoontek/react-native-permissions

    这是一个关于如何使用权限处理图像选择的示例

    import ImagePicker, {
      ImagePickerOptions,
      ImagePickerResponse,
    } from 'react-native-image-picker';
    import { openSettings } from 'react-native-permissions';
    
    import { alertWrapper } from './alert';
    
    export const selectPicture = (options: ImagePickerOptions) => {
      const pickerPromise = new Promise<ImagePickerResponse>((resolve) => {
        try {
          ImagePicker.showImagePicker(options, (response: ImagePickerResponse) => {
            if (response.didCancel) {
              return;
            }
    
            if (response.error) {
              if (response.error.includes('permissions')) {
                alertWrapper('Error', response.error, [
                  { text: 'Open Settings', onPress: () => openSettings() },
                ]);
              }
    
              return;
            }
    
            resolve(response);
          });
        } catch (e) {
          throw e;
        }
      });
    
      return pickerPromise;
      };
    

    【讨论】:

    • 你也可以使用 react-native Linking 中的 Linking.openSettings() 来保存另一个依赖项
    猜你喜欢
    • 2021-05-27
    • 2022-08-16
    • 1970-01-01
    • 2011-04-03
    • 2021-06-11
    • 2019-07-05
    • 1970-01-01
    • 2016-03-17
    • 1970-01-01
    相关资源
    最近更新 更多