Expo 联系人:如果状态被拒绝,请请求访问联系人的权限

问题描述 投票:0回答:1

我有一个按预期工作的联系人组件,但如果用户最初拒绝授予我的应用程序访问其联系人的请求,则不会再次询问该请求,联系人模式反而显示为空:

  useEffect(() => {
    (async () => {
      const { status } = await Contacts.requestPermissionsAsync()

      if (status === "granted") {
        const { data } = await Contacts.getContactsAsync({
          fields: [Contacts?.Fields?.PhoneNumbers],
        });
        if (data.length > 0) {
          setContacts(data);
        }
      }
    })();
  }, []);
javascript ios react-native permissions expo
1个回答
0
投票

检查

canAskAgain
是否可以请求权限,如果不能,请为用户提供打开设置选项。

指示是否可以再次询问用户特定权限。如果没有,应引导至“设置”应用程序以启用/禁用该权限。

const { status, canAskAgain } = await Contacts.requestPermissionsAsync()
...
if (canAskAgain) {
  Linking.openSettings()
}
© www.soinside.com 2019 - 2024. All rights reserved.