我在Xamarin Forms应用程序上使用推送通知在使用图标徽章时遇到了麻烦。我正在使用Firebase将应用程序发送到两个设备。
我为Android使用徽章的方式是,该应用从有效负载的“数据”部分获取完整的通知信息。当通知仅包含数据部分时,我可以触发一个功能,该功能将设置徽章并显示弹出通知。如果我在“通知”部分中输入了相同的信息,则无法触发设置徽章的操作。
对于iOS,徽章计数是从有效载荷的“通知”部分发送的。 iOS没有看到“数据”部分并创建自动弹出窗口。我试图在应用程序在后台但无法找到方法时触发功能。
底线:iOS需要“通知”有效载荷,而Android需要“数据”有效载荷以显示正确的标志。
有人知道当应用程序在后台并且收到推送通知时,如何在iOS上的AppDelegate中触发功能吗?和/或没有人知道有“通知”时如何在Android中触发功能吗?有效载荷部分?
这是我的有效载荷:
{
"to":"{mytoken}",
"notification":{
"title":"Appointment Almost Booked",
"body":"Please confirm your appointment",
"badge":3
},
"data":{
"title":"Appointment Almost Booked",
"body":"Please confirm your appointment slot",
"badge":3
}
}
答案 0 :(得分:1)
对于iOS:
您可以参考:
https://firebase.google.com/docs/cloud-messaging/http-server-ref#notification-payload-support。
在表1中,有一个属性content_available
,您可以将其设置为在后台运行应用程序时将其唤醒。
在iOS上,使用此字段表示APN中可用的内容 有效载荷。发送通知或消息并将其设置为 是的,非活动客户端应用程序被唤醒,并且消息已发送 通过APN作为静默通知而不是通过FCM 连接服务器。请注意,APN中的静默通知不是 保证交付,并且可能取决于用户等因素 打开低功耗模式,强制退出应用程序等。在Android上, 数据消息默认会唤醒应用程序。在Chrome上,目前没有 支持。
然后,您可以在DidReceiveRemoteNotification
中触发功能。
这是一个可能对您有帮助的链接: