React Native 如何更改是否在Expo应用程序中接收通知

pu3pd22g  于 2023-02-24  发布在  React
关注(0)|答案(1)|浏览(122)

我正在通过expo-notification接收推送通知。我在应用程序中创建了一个按钮,允许您设置是否接收通知。x1c 0d1x所需行为为:
如果此按钮处于打开状态,应用程序将接收推送通知。
当按钮关闭时,应用程序无法接收推送通知。
我想知道在应用中接收推送通知的处理方法,它没有设置接收通知的权限,我想保存AsyncStorage的值,并根据该值设置接收到通知时是否显示。

const BACKGROUND_NOTIFICATION_TASK = "BACKGROUND-NOTIFICATION-TASK";

TaskManager.defineTask(BACKGROUND_NOTIFICATION_TASK, ({ data, error, executionInfo }) => {
    if (error) {
        console.log("error occurred");
    }
    if (data) {
        console.log("data-----", data);
    }
});

Notifications.registerTaskAsync(BACKGROUND_NOTIFICATION_TASK);

上面的功能是后台接收设置的功能,我在按钮OFF状态下尝试了unregisterTaskAsync,后台仍然收到通知,应该用什么方法来实现在应用中更改通知设置?

wfveoks0

wfveoks01#

对此有多种解决方案。

  • 第一件事是在后端的用户表中设置一个标志,如果该标志打开,则发送通知。如果该标志关闭,则不会向用户发送通知。后台和终止状态通知只能以这种方式处理。因为这些可以从后端处理。
  • 对于前台通知,您可以在redux存储中创建标志,并基于此向用户显示通知。
  • 第三个是,如果用户关闭推送通知,然后在后端将其设备令牌设置为空,将不会收到任何通知。

相关问题