第一次推送通知在几秒钟后消失

Posted

技术标签:

【中文标题】第一次推送通知在几秒钟后消失【英文标题】:First push notification disappears after few seconds 【发布时间】:2017-05-23 10:54:17 【问题描述】:

当应用程序位于background 时,我的应用程序首先notification 会在几秒钟后消失,即使用户没有对该notification 采取任何操作。之后,每个notification 都保持在原位。

是否将应用程序 badge number 设置为 0 或取消 local notifications 对此有任何影响。(我尝试评论这些部分,但没有解决)。

`func application(application: UIApplication, 
 didFinishLaunchingWithOptions launchOptions: [NSObject: AnyObject]?) 
 -> Bool 


    Fabric.with([Crashlytics.self])

    registerForPushNotifications(application)
    application.registerForRemoteNotifications()

    //Firebase push notification
    FIRApp.configure()



    // Add observer for InstanceID token refresh callback.
    NSNotificationCenter.defaultCenter().addObserver(self,
                                                    selector: #selector(self.tokenRefreshNotification),
                                                    name: kFIRInstanceIDTokenRefreshNotification,
                                                    object: nil)

  UIApplication.sharedApplication().applicationIconBadgeNumber = 0



    


`

  func application(application: UIApplication, didReceiveRemoteNotification userInfo: [NSObject : AnyObject]) 

    guard  let aps = userInfo["aps"] as? [String: AnyObject] else
        return
    

    let state = UIApplication.sharedApplication().applicationState
    if state == .Background || state == .Inactive
       //do some background work
   


任何帮助将不胜感激。

【问题讨论】:

你能展示你的代码吗? 我已经更新了我的问题 第二个通知有按钮,第一个没有按钮吗? 只需删除设置 applicationBadgeNumber 并尝试一次。 【参考方案1】:

问题是由于手动设置徽章编号造成的。我的应用程序中有代码可以在应用程序启动时手动设置徽章编号(根据情况设置为 0 或保存在 NSUserDefaults 中的值),并发现执行其中任何一项都会导致通知横幅消失并且声音会切断中间通知。为了解决这个问题,我检查了applicationState,如果是UIApplicationStateBackground,我没有触摸徽章编号。

因此,根据您上面的代码,要么删除 didFinishLaunching 中的行以将徽章设置为 0,要么在设置为 0 之前确保应用程序状态不是背景。

我在这里发布了类似的答案: https://***.com/a/53381819/2788608

【讨论】:

以上是关于第一次推送通知在几秒钟后消失的主要内容,如果未能解决你的问题,请参考以下文章

应用商店中已有应用的推送通知

Firebase 推送通知在几周后不起作用

删除 iOS 应用后保存推送通知数据

应用程序未运行时的远程推送通知崩溃

在几秒钟内向许多 iphone/android 发送通知

当第二个被触摸时,android的状态栏中出现多个推送通知其他人消失