当前位置: 首页 > 知识库问答 >
问题:

应用程序打开时更新徽章而不发出警报

长孙鸿波
2023-03-14

我试图通过消息推送远程更新徽章值。一切正常,但当应用程序打开时,我得到一个空警报(包含我的应用程序名称和关闭按钮)。

我在苹果的留档中读到了静默通知,但似乎即使在通知有效载荷中指定内容可用: 1,有效载荷也不能包含通知静默的徽章。

在没有收到警报的情况下更新徽章可能吗?

共有1个答案

丌官运珧
2023-03-14

如果使用静默推送通知,则不能将badge键包含在aps字典中,因此不能直接使用静默推送更新徽章。

您可以在aps字典中包含自己的键和值,此字典可在DidReceiveMemoteNotify:fetchCompletionHandler 函数中找到。

在该功能中,您可以从aps字典中提取您自己的“徽章”密钥,并使用该密钥直接使用UIApplication属性[applicationBadgeNumber]更新徽章编号[1]

UIApplication.shared.applicationIconBadgeNumber = someValue

比如:

 func application(_ application: UIApplication, didReceiveRemoteNotification userInfo: [AnyHashable : Any], fetchCompletionHandler completionHandler: @escaping (UIBackgroundFetchResult) -> Void) {
    if let badgeNumberStr = userInfo["myBadge"] as? String {
        if let badgeNumber = Int(badgeNumberStr) {
            application.applicationIconBadgeNumber = badgeNumber
        }
    }
}
 类似资料:
  • 我已经得到推送通知工作,并设法更新图标徽章计数时,应用程序被带到前台。 但我对此有点困惑。。。iPhone收到通知,弹出消息显示激活我的应用程序,徽章仅在我启动应用程序后更新。 就用户体验而言,这听起来并不正确。我的理解是,徽章计数应该通过递增计数通知用户需要采取的行动,但这要等到应用程序运行的后期才会发生。 那么,当应用程序在后台收到推送通知时,有没有办法告诉它更新徽章计数? 请注意,我的应用程

  • 我已经看过关于午夜更新应用程序徽章的问题,选项有:应用程序未启动或在后台,当通知到达时,徽章编号可以减少并更改应用程序图标徽章;当应用程序关闭时,推送通知徽章计数不更新并更新徽章图标;等等。但我遇到的问题与应用程序在后台且推送通知到达时相同,应用程序徽章图标不更新。 我已经检查了所有的可能性。我的代码是: 是的,当应用程序在前台时,它工作正常,然后它显示警报正常。但是当应用程序在后台时,既没有任何

  • 我需要在我的应用程序图标上显示徽章 我所尝试的: > 2.我已经浏览了许多已经在stackoverflow上的可用答案,如 如何在应用程序启动器图标中显示通知计数 我们可以在android应用程序图标(如iphone)上显示徽章号码吗? 如何在Redmi上使用应用程序图标显示徽章计数? 在android应用程序图标上添加未读通知徽章 有没有办法在Android系统中为应用程序图标添加徽章? 所有这

  • 我在我的应用程序中启用了应用链接。它工作正常。但是在我的应用程序中,有一些情况下我无法处理传入的网址。在这种情况下,我想将该网址重定向到设备中的默认浏览器。 目前,我尝试使用intent打开带有url的浏览器,但它再次重定向到我的应用程序本身。应用程序链接的格式如下- 所以根据params,我想要么在应用程序本身中处理应用程序链接,要么将其重定向到默认浏览器。下面是我试图用上面的网址打开浏览器的代

  • null 谷歌已经用他们的谷歌地图应用程序实现了这一点。如果你在Safari的Google.com上搜索一个地址,你可以点击搜索结果中出现的地图,它就会打开地图应用程序。在地图应用程序的顶部将有一个“返回Safari”栏,你可以点击它。一旦点击它,您将返回到Safari,而无需加载另一个选项卡。我似乎找不到任何关于谷歌是如何做到这一点的。如果我能在我的应用程序中复制这种行为,那就很好了。 任何帮助

  • 大家好,我是Firebase动态链接的新手,我自己也在学习,我一直在遵循本教程来完成它。 我的代码创建方法是: 它给我的网址像:https://testxyz.page.link/RhSKMYMnE2YHLbZk6我复制并粘贴到我的浏览器,它工作正常,带我到播放商店,并显示我需要的应用程序,我想打开这个链接与应用程序id:com.test.app 我所做的测试是点击这个网址从我的Android手机