我有一个按预期工作的联系人组件,但如果用户最初拒绝授予我的应用程序访问其联系人的请求,则不会再次询问该请求,联系人模式反而显示为空:
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);
}
}
})();
}, []);
检查
canAskAgain
是否可以请求权限,如果不能,请为用户提供打开设置选项。
指示是否可以再次询问用户特定权限。如果没有,应引导至“设置”应用程序以启用/禁用该权限。
const { status, canAskAgain } = await Contacts.requestPermissionsAsync()
...
if (canAskAgain) {
Linking.openSettings()
}