вам нужно будет проверить статус из expo-location и перенаправить пользователя в настройки, чтобы получить разрешение, для которого вы можете использовать android намерения для android, а для ios вы можете использовать Linking для перенаправления пользователя на Настройки устройства и дать разрешения
requestLocationPermission = async () => {
const { status } = await Permissions.askAsync(Permissions.LOCATION);
if (status === 'granted) {
navigation.navigate('screen_name');
} else {
// Alert Message if user does not allow permissions
Alert.alert("alert Message", "Instructions based on OS", [
{
text: 'Open Settings',
onPress: () => goToSettings(),
style: 'cancel',
},
{ text: Languages.DENY, onPress: () => navigation.goback()},
]);
}
};
go на настройки
goToSettings = () => {
if (Platform.OS == 'ios') {
// Linking for iOS
Linking.openURL('app-settings:');
} else {
// IntentLauncher for Android
IntentLauncher.startActivityAsync(
IntentLauncher.ACTION_MANAGE_ALL_APPLICATIONS_SETTINGS
);
}
};
- ПРИМЕЧАНИЕ Модуль запуска намерений - это отдельный пакет для android