ios - 如何在 iOS13 中收到推送通知时自动增加通知角标(Badge)编号

标签 ios swift iphone apple-push-notifications ios13

在 iOS 13 之前,当推送通知到达方法 application :didReceiveRemoteNotification:fetchCompletionHandler 时,我会增加应用程序角标(Badge)编号:

    func application(_ application: UIApplication,
                     didReceiveRemoteNotification userInfo: [AnyHashable : Any],
                     fetchCompletionHandler completionHandler: @escaping (UIBackgroundFetchResult) -> Void) {
        if application.applicationState == .background {
            UIApplication.shared.applicationIconBadgeNumber += 1
        }
        completionHandler(.newData)
    } 

然后我每次打开应用程序时都会清理角标(Badge)编号:

   func applicationDidBecomeActive(_ application: UIApplication) {
       UIApplication.shared.applicationIconBadgeNumber = 0
   }

问题在于 latest changes in iOS 13仅当推送通知的属性 apns-priority 设置为至少 5 时,才会调用方法 application :didReceiveRemoteNotification:fetchCompletionHandler。我们正在使用第三方推送通知服务不发送具有该属性的推送通知。

所以我的问题是:

是否有其他方法可以在收到推送通知时自动增加应用角标(Badge)编号?

谢谢

最佳答案

您不需要唤醒应用程序并执行此操作,这将由系统决定是否唤醒您的应用程序。最好让系统处理它,并在通知中包含角标(Badge)编号。

https://developer.apple.com/documentation/usernotifications/unnotificationcontent/1649864-badge?language=objc

关于ios - 如何在 iOS13 中收到推送通知时自动增加通知角标(Badge)编号,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58860105/

相关文章:

iphone - 为什么我们在 sqlite3_prepare_v2( ) 中使用 NULL

iphone - ld : library not found for -lGoogleAnalytics

ios - 检测底层 UITableViewCell 上的触摸并点击 UITextview 的属性文本

iphone - 如何从 View 访问标签栏对象

objective-c - Horizo​​ntal UIScrollView having vertical UIScrollViews inside - 如何防止在滚动外部水平 View 时滚动内部 ScrollView ?

ios - 为什么我在将数据从一个 View Controller 传递到另一个 View Controller 时收到 nil?

iphone - 在模态和非模态情况下重用 UIViewController

ios - 将 PFQueryTableViewCell imageView 设置为本地镜像

ios - 创建一个函数以在 Swift4 中从字符串数组以编程方式创建 UILabel

xcode - Podfile PXGoogleDirections 和 GoogleMaps 名称冲突