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

时间:2018-10-26 23:46:36

标签: android ios firebase 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
    }
}

1 个答案:

答案 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中触发功能。

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

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