繁体   English   中英

使用Xamarin表单为Android和iOS设置推送通知徽章时遇到问题

[英]Trouble setting push notification badge for Android and iOS using Xamarin Forms

我在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
    }
}

对于iOS:

您可以参考:

https://firebase.google.com/docs/cloud-messaging/http-server-ref#notification-payload-support

在表1中,有一个属性content_available您可以将其设置为在后台运行应用程序时将其唤醒。

在iOS上,使用此字段表示APNs有效内容中可用的内容。 发送通知或消息并将其设置为true时,将唤醒不活动的客户端应用程序,并且消息通过APN作为静默通知而不是通过FCM连接服务器发送。 请注意,APN中的无提示通知不能保证会传递,并且可能取决于诸如用户打开低功耗模式,强制退出应用程序等因素。在Android上,默认情况下,数据消息会唤醒应用程序。 在Chrome上,目前不支持。

然后,您可以在DidReceiveRemoteNotification触发函数。

这是一个可能对您有帮助的链接:

https://docs.microsoft.com/en-us/azure/app-service-mobile/app-service-mobile-xamarin-forms-get-started-push#configure-and-run-the-ios-project-可选的

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM