如何使用 react-native-firebase 在 iOS 设备的推送通知中添加按钮?

Posted

技术标签:

【中文标题】如何使用 react-native-firebase 在 iOS 设备的推送通知中添加按钮?【英文标题】:How to add button in push-noitifications to iOS devices with react-native-firebase? 【发布时间】:2019-11-07 21:16:57 【问题描述】:

我有一个疑问,我无法通过 react-native-firebase 解决在 ios 的推送通知中使用按钮执行操作(接受或拒绝)的问题。对于 android,我可以做到,但对于 iOS,我找不到注册操作的方法。接下来我展示一下我的代码。

const notificationListener = () => 
  firebase.notifications().onNotification((notification) => 
    const localNotification = new firebase.notifications.Notification(
        sound: 'default',
        show_in_foreground: true,
      )
      .setSound('default')
      .setBody(notification.body)
      .setData(notification.data)
      .setTitle(notification.title)
      .setSubtitle(notification.subtitle)
      .setNotificationId(notification.notificationId);
    if (Platform.OS === 'android')       
      localNotification
        .android.setBigText(notification.body)
        .android.setSmallIcon('ic_noti_logo_hnc')
        .android.setLargeIcon('ic_launcher')
        .android.setVisibility(firebase.notifications.Android.Visibility.Public)
        .android.setChannelId(CHANNEL_NOTIFICATIONS.CHANNEL_ID)
        .android.setPriority(firebase.notifications.Android.Priority.High);

      if (isEqual(localNotification.data.set_delay_time, "true"))
        // Build an action
        const acceptAction = new firebase.notifications.Android.Action('accept_action', 'default', 'Accept');
        const rejectAction = new firebase.notifications.Android.Action('reject_action', 'default', 'Reject');
        localNotification
          .android.addAction(acceptAction)
          .android.addAction(rejectAction);
      

     else if (Platform.OS === 'ios') 
      localNotification
        .ios.setBadge(notification.ios.badge);
    
    firebase.notifications().displayNotification(localNotification)
      .catch(err => console.error(err));
  );
;

我打算做的事情与你在 Android 中发现的相似,但我发现最多的是 IOSNotification.alertAction。

有人可以指导我吗?从已经非常感谢你了!

尼科。

【问题讨论】:

【参考方案1】:

使用“react-native-firebase”版本6。您可以从here获取迁移信息。

您可以使用Notifee 显示动作按钮并处理所有动作点击事件。

定义动作,

import notifee from '@notifee/react-native';

async function setCategories() 
  await notifee.setNotificationCategories([
    
      id: 'post',
      actions: [
        
          id: 'like',
          title: 'Like Post',
        ,
        
          id: 'dislike',
          title: 'Dislike Post',
        ,
      ],
    ,
  ]);

为推送通知分配类别,

import notifee from '@notifee/react-native';

notifee.displayNotification(
  title: 'New post from John',
  body: 'Hey everyone! Check out my new blog post on my website.',
  ios: 
    categoryId: 'post',
  ,
);

【讨论】:

以上是关于如何使用 react-native-firebase 在 iOS 设备的推送通知中添加按钮?的主要内容,如果未能解决你的问题,请参考以下文章

如果加入条件,我该如何解决。如果使用字符串连接,我如何使用

如何使用本机反应创建登录以及如何验证会话

如何在自动布局中使用约束标识符以及如何使用标识符更改约束? [迅速]

如何使用 AngularJS 的 ng-model 创建一个数组以及如何使用 jquery 提交?

如何使用laravel保存所有行数据每个行名或相等

如何使用 Math.Net 连接矩阵。如何使用 Math.Net 调用特定的行或列?