在我们的后端,我们只通过FCM(分离(引发创建推送通知和消息的事件。
一条"消息"(仅限数据(供客户和与订单相关的客户在屏幕等上更新,一条推送通知供客户使用。
问题是,android同时接收推送和消息,但IOS只接收消息,而不接收推送通知。
当我通过.NET后端的测试直接向Iphone设备发送推送通知时(它实现了Firebase消息服务,也使用了引发的相同事件(,Iphone装置会收到推送通知。
我们正在使用应用程序分发,该应用程序是用react native构建的。我们的后端.NET,使用firebase管理SDK。
我们注意到的是:
-
卸载并再次安装应用程序会使通知工作,但只有一次,它就会停止工作。
-
当客户应用程序与"触发"订单更新的其他应用程序在同一设备上时(如果订单更新(,则会收到客户应用程序中同一设备的通知。
代码:
Message message = new Message
{
Token = token,
Notification = new Notification
{
Title = title,
Body = body
},
Android = new AndroidConfig
{
Data = data as IReadOnlyDictionary<string, string>,
Priority = Priority.High,
TimeToLive = TimeSpan.FromMinutes(ttl),
Notification = new AndroidNotification
{
ChannelId = "default"
}
},
Apns = new ApnsConfig
{
Aps = new Aps
{
ContentAvailable = true,
CustomData = dataToStringObject
}
}
您需要在IOS的json中发送通知密钥。则只有IOS设备将接收该通知。
当您设置"ContentAvailable:true;在没有alert字段的情况下,fcm在ios中发送静默推送。
后台通知标志。要执行静默后台更新,请指定值1,并且不要在有效负载中包含警报、徽章或声音键。
https://developer.apple.com/documentation/usernotifications/setting_up_a_remote_notification_server/generating_a_remote_notification