当我的应用程序未运行时,我可以在应用程序上显示徽章计数,并在iOS上接收推送通知吗



我在应用程序中使用推送通知,当用户点击通知并启动应用程序时,我会更新徽章计数,但如果应用程序没有运行并连续收到通知,它永远不会更新计数。

有什么方法可以在后台完成吗。

iOS是否提供了一个api或通知,我可以像andoid 一样在本地注册和处理徽章

徽章计数是从服务器端管理的。为此,您的后端必须在Push中发送特定的JSON Payload。

{
    "aps" : {
        "alert" : {
            "title" : "Game Request",
            "body" : "Bob wants to play poker",
            "action-loc-key" : "PLAY"
        },
        "badge" : 5
    },
    "acme1" : "bar",
    "acme2" : [ "bang",  "whiz" ]
}

类似于上面的内容,其中徽章值为5。当iOS上出现此推送时,它将自动在应用程序的徽章上显示此计数。

接下来的问题可能是,如何更新徽章。在应用程序启动时,只需使用重置应用程序徽章

[[UIApplication sharedApplication]setApplicationIconBadgeNumber:0];

同时也调用一个新的Web服务来更新服务器端的0作为徽章计数,以便在下一次推送时Web服务可以发送1。也请您的后台人员在每次推送时增加此计数。然而,这取决于您的应用程序案例。我刚才解释的是,在应用程序启动时,所有通知都必须被视为已读。

通常您会使用通过推送添加新计数

badge: Int

您将计算此服务器端并将其添加到负载中。

这是有效载荷参数的链接。

相关内容

最新更新