如何在不使用系统对话框的情况下使用Expo静默检查React-Native中的相机权限?

时间:2018-07-30 19:35:09

标签: react-native permissions camera expo

我正在使用Expo构建一个React-Native应用,我需要检查/询问相机权限。但是,权限请求似乎总是会启动系统权限对话框。如何在不启动系统对话框的情况下静默检查权限?

我用来检查权限的代码如下:

const { status } = await Permissions.askAsync(Permissions.CAMERA);
if (status === 'granted') console.log('permission granted!';

我知道Permissions.askAsync会自动返回status===granted,但是我正在使用两步权限过程,用户首先单击一个按钮来请求权限。但是,如果它已经被更早设置,我宁愿不显示按钮,而只是自动进行。我已经在NPM上看到一些实现此功能的组件,但是我认为它们与Expo不兼容。

1 个答案:

答案 0 :(得分:1)

您应该使用“ getAsync”而不是“ askAsync”:Expo.Permissions.getAsync(type)

const { status } = await Permissions.getAsync(Permissions.NOTIFICATIONS);
if (status !== 'granted') {
   alert('Hey! You might want to enable notifications for my app, they are good.');
}

https://docs.expo.io/versions/latest/sdk/permissions