React Native 当我用uuidv4()传递id属性时,计划的代理不起作用

9rnv2umw  于 2023-10-22  发布在  React
关注(0)|答案(1)|浏览(166)

我希望你们都能帮助我解决这个bug,我从昨晚开始就一直在使用react-native-push-notification。我一直在尝试使用PushNotification.localNotificationSchedule()功能发送推送通知。在我将id属性添加到通知对象之前,代码运行得很好。下面是代码工作时的示例:

PushNotification.localNotificationSchedule({
        channelId: "channel-id",
        title: `Hi there ${fullName}!`,
        message: `You've Got A To-Do "${todoInfo.title}" Now!`,
        date: new Date(todoInfo.dateDue),
        allowWhileIdle: true,
      });

我这样做的时候也是这样:

PushNotification.localNotificationSchedule({
        channelId: "channel-id",
        title: `Hi there ${fullName}!`,
        message: `You've Got A To-Do "${todoInfo.title}" Now!`,
        date: new Date(todoInfo.dateDue),
        id: 555,
        allowWhileIdle: true,
      });

但是当我使用库生成唯一的id以便我可以在之后取消通知时不起作用;示例代码如下:

import 'react-native-get-random-values';
import { v4 as uuidv4 } from 'uuid';

// Some other code here

PushNotification.localNotificationSchedule({
        channelId: "channel-id",
        title: `Hi there ${fullName}!`,
        message: `You've Got A To-Do "${todoInfo.title}" Now!`,
        date: new Date(todoInfo.dateDue),
        id: uuidv4(),
        allowWhileIdle: true,
      });

拜托,有没有办法让我忘记这件事?
我尝试使用一个随机id生成器,如uuid和它不工作。当我传递硬编码的id时,它可以工作。我希望我的应用程序会显示通知。

qvtsj1bj

qvtsj1bj1#

根据文档,在创建通道之前,通知不会起作用:
"channel-id"是默认创建的channelId,因此在channelId中使用它时通知有效

创建本地频道ID:

您必须在AndroidMainfest.xml中硬编码通知通道ID

<meta-data
  android:name="com.dieam.reactnativepushnotification.default_notification_channel_id"
  android:value="@string/default_notification_channel_id" />

对于远程Firebase Cloud Messenger,请参阅FCM documentation

查看频道列表并列出

下面是文档中的代码,用于检查通道并列出可用的通知通道

PushNotification.getChannels(function (channel_ids) {
  console.log(channel_ids); // ['channel_id_1']
});

请注意,通道ID与通知的唯一ID不同,因此尝试将其与uuid一起使用不是它的假定用法

相关问题