【问题标题】:Trouble setting push notification badge for Android and iOS using Xamarin Forms使用 Xamarin Forms 为 Android 和 iOS 设置推送通知徽章时遇到问题
【发布时间】:2019-03-31 17:36:15
【问题描述】:

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

【问题讨论】:

    标签: android ios firebase xamarin.forms


    【解决方案1】:

    对于 iOS:

    可以参考:

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

    在表 1 中,有一个属性 content_available 可以设置为在您的应用程序处于后台时唤醒您的应用程序。

    在 iOS 上,使用此字段表示 APN 中的可用内容 有效载荷。当发送通知或消息并将其设置为 true,一个不活动的客户端应用程序被唤醒,消息被发送 通过 APNs 作为静默通知,而不是通过 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

    【讨论】:

    • 谢谢杰克!我在通知括号下的有效负载中添加了"content_available": true,它起作用了!当应用程序在后台时,DidReceiveRemoteNotification 函数在 iOS 上被调用。这应该可以帮助我完成通知!
    猜你喜欢
    • 1970-01-01
    • 2017-05-14
    • 1970-01-01
    • 2014-05-06
    • 2018-08-21
    • 2015-06-14
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多