用户可以在Android上关闭应用通知。有没有办法检查用户是否这样做了?
React Native doc未提及通知权限,因为它不是需要提示用户的权限。
Android docs确实提到了访问通知政策的功能。
答案 0 :(得分:2)
我找到了一个名为React-native-permission-settings
的库仅适用于 android ,因此如果您需要iOS支持,我认为您需要修改它。
您可以按照here
的安装指南进行操作并在您的代码中实现它
import NotificationSettings from 'react-native-permission-settings';
...
NotificationSettings.areNotificationsEnabled((isEnabled: boolean) => {
console.log(`Notifications are enabled: ${isEnabled}`);
});
答案 1 :(得分:-1)
我在以前的经验中使用过这个,效果很好:
https://github.com/jigaryadav/react-native-check-notification-enable
基本上我作为助手最终实现的是这两个功能:
export const getNotificationStatus = async () => {
if (Platform.OS === 'ios') {
const status = await Permissions.check(PermissionRequested.NOTIFICATION)
if (status === PermissionsStatus.AUTHORIZED) {
return true
} else {
return false
}
} else {
// This is where I am using the library
const status = await NotificationManager.areNotificationsEnabled()
return status
}
}
export const openNotificationsSettings = () => {
if (Platform.OS === 'ios') {
Linking.openURL('app-settings:')
} else {
AndroidOpenSettings.appNotificationSettings()
}
}
只是解释一下整个片段:
我也结合使用这些库来实现所有:检查它们是否已启用并导航到设置页面以在需要时撤消
import AndroidOpenSettings from 'react-native-android-open-settings'
import NotificationManager from 'react-native-check-notification-enable'
import Permissions from 'react-native-permissions'