首页 > 解决方案 > React Native/iOS 相机权限:显示警报以从设置中为不允许相机访问的用户打开权限?

问题描述

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

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

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

标签: iosreact-native

解决方案


您可以开始查看 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;
  };

推荐阅读