第一次推送通知在几秒钟后消失
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
【讨论】:
以上是关于第一次推送通知在几秒钟后消失的主要内容,如果未能解决你的问题,请参考以下文章