Expo - 实施通知设置应用程序图标徽章编号

Posted

技术标签:

【中文标题】Expo - 实施通知设置应用程序图标徽章编号【英文标题】:Expo - Implementing Notifications Set App Icon Badge Number 【发布时间】:2020-04-01 12:58:50 【问题描述】:

尽管多次尝试在我们的 Expo 应用中实现应用图标徽章编号,但仍无法设置应用图标徽章编号。关于设置通知应用程序图标徽章编号的文档也非常有限。我们尝试在有新的推送通知时将应用图标徽章编号设置为 1,然后在用户单击通知后将应用图标徽章编号重置为 0。

谁能指出这里出了什么问题?

以下是通知监听器的回调函数。

handleNotification = async (notification) => 
    const  origin, data, notificationId  = notification
    const notif =  id: notificationId, ...data 

    // set notifications badge count
    try 
      const setAppBadgeCount = await Notifications.setBadgeNumberAsync(1)
      console.log(`showing app badge number to 1 $setAppBadgeCount`)
     catch (err) 
      console.log('did not manage to show notif app badge count!', err)
    
    if (origin === 'selected') 
      this.navigateToNotificationScreen(data)
      try 
        const resetAppBadgeCount = await Notifications.setBadgeNumberAsync(0)
        console.log(`reset app badge count $resetAppBadgeCount`)
       catch (err) 
        console.log('did not manage to reset notif app badge count!', err)
      
     else  // origin === 'received', show in-app
      const  dispatch  = this.props
      dispatch(setActiveNotifications([notif]))

      setTimeout(() => 
        dispatch(setInactiveNotifications([notif]))
      , 10000)
    
  

提前致谢!

【问题讨论】:

您是否收到任何错误或异常? 我在下面发布了我的答案,希望对您有所帮助! 【参考方案1】:

啊,我被提醒我没有将解决方案留在这里。就我而言,Expo 前端代码编写得非常完美。我在上面写它的方式就像一个魅力。我的问题是发送到 Expo 服务器的 后端请求 没有正确写入。参考这个链接-https://docs.expo.io/versions/latest/guides/push-notifications/#sending-notifications-from-your-server

[
  
    "to": "ExponentPushToken[xxxxxxxxxxxxxxxxxxxxxx]",
    "sound": "default",
    "body": "Hello world!"
  ,
  
    "to": "ExponentPushToken[yyyyyyyyyyyyyyyyyyyyyy]",
    "badge": 1,
    "body": "You've got mail"
  ,
  
    "to": [
      "ExponentPushToken[zzzzzzzzzzzzzzzzzzzzzz]",
      "ExponentPushToken[aaaaaaaaaaaaaaaaaaaaaa]"
    ],
    "body": "Breaking news!"
  
]

具体来说,我没有在发送到 Expo 服务器的通知的请求正文中添加参数 "badge": 1。结果,根本没有设置应用程序图标徽章编号。

【讨论】:

以上是关于Expo - 实施通知设置应用程序图标徽章编号的主要内容,如果未能解决你的问题,请参考以下文章

Swift 本地通知图标徽章编号不递增

iOS 8. 在没有任何通知的情况下更改应用徽章编号

本地通知触发时更改图标徽章编号

Flutter - 推送通知到达时在应用程序图标上显示徽章编号

如何重置徽章应用图标编号?

如何从 iPhone 中的应用程序图标中删除徽章通知符号