如果在Android上启用了应用通知,请执行本机检查

时间:2018-03-01 03:52:10

标签: android react-native android-notifications

用户可以在Android上关闭应用通知。有没有办法检查用户是否这样做了?

React Native doc未提及通知权限,因为它不是需要提示用户的权限。

Android docs确实提到了访问通知政策的功能。

2 个答案:

答案 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'