我正在使用Expo构建一个React-Native应用,我需要检查/询问相机权限。但是,权限请求似乎总是会启动系统权限对话框。如何在不启动系统对话框的情况下静默检查权限?
我用来检查权限的代码如下:
const { status } = await Permissions.askAsync(Permissions.CAMERA);
if (status === 'granted') console.log('permission granted!';
我知道Permissions.askAsync
会自动返回status===granted
,但是我正在使用两步权限过程,用户首先单击一个按钮来请求权限。但是,如果它已经被更早设置,我宁愿不显示按钮,而只是自动进行。我已经在NPM上看到一些实现此功能的组件,但是我认为它们与Expo不兼容。
答案 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.');
}