是否可以仅显示 Firebase 推送通知的徽章,而在 IOS(Swift 或 Obj-C)中没有警报?

Posted

技术标签:

【中文标题】是否可以仅显示 Firebase 推送通知的徽章,而在 IOS(Swift 或 Obj-C)中没有警报?【英文标题】:Is it possible to show only badge for Firebase push notification, without alert in IOS (Swift or Obj-C)? 【发布时间】:2018-03-22 12:54:52 【问题描述】:

我正在使用 Firebase 为 ios 应用发送远程推送通知。现在我需要在应用程序未运行时仅在应用程序图标中显示徽章而不发出警报。 有没有可能实现类似的东西?

谢谢

【问题讨论】:

【参考方案1】:

只有在didFinishLaunchingWithOptions中设置权限时才请求UIUserNotificationTypeBadge权限

删除.alert

func requestNotificationAuthorization(application: UIApplication) 
    if #available(iOS 10.0, *) 
        UNUserNotificationCenter.current().delegate = self
        let authOptions: UNAuthorizationOptions = [.badge]
        UNUserNotificationCenter.current().requestAuthorization(options: authOptions, completionHandler: _, _ in )
     else 
        let settings: UIUserNotificationSettings = UIUserNotificationSettings(types: [.badge], categories: nil)
        application.registerUserNotificationSettings(settings)
    

【讨论】:

【参考方案2】:

只有在向用户请求通知授权时,才应将通知设置选项设置为.badge

let notificationCenter = UNUserNotificationCenter.current()
notificationCenter.requestAuthorization(options: [.badge], completionHandler:  [weak self] success, error in
       guard success else 
            guard error == nil else 
                 print("Error occured while requesting push notification permission. In \(#function)")
                 print("Error: \(error!.localizedDescription)")
                 return
            
            print("User has denied permission to send push notifications")
            return
    
    print("User has granted permission to send push notifications")

【讨论】:

以上是关于是否可以仅显示 Firebase 推送通知的徽章,而在 IOS(Swift 或 Obj-C)中没有警报?的主要内容,如果未能解决你的问题,请参考以下文章

Firebase 推送通知徽章计数是不是在 iOS 中自动增加?

清除徽章依靠使用 firebase 的 RN 应用程序

Flutter - 推送通知到达时在应用程序图标上显示徽章编号

如何增加徽章数量

Flutter 在推送通知上显示应用程序图标徽章

推送通知徽章清除警报