iOS角标清零,通知中心消息不清零

2018-09-14  本文已影响440人  lanmoyingsheng

之前集成了极光推送,点击进入App,设角标为0,角标清空,但是通知中心也清空了。经理让优化一下,通知中心的消息不消失。

参考 iOS推送角标与通知栏变化总结极光推送 角标清0 未读消息不清空

想清楚角标但是保留通知中心消息,可行的办法是构建本地通知,间接实现这种效果。

完整代码如下。在处理通知具体内容时,也不处理角标的逻辑。


func localNotificationClearBadgeNumber() {
    let ln = UILocalNotification()
    ln.applicationIconBadgeNumber = -1
    UIApplication.shared.presentLocalNotificationNow(ln)

    JPUSHService.setBadge(0)
}

func applicationWillResignActive(_ application: UIApplication) {
        
   localNotificationClearBadgeNumber()
}

func applicationDidEnterBackground(_ application: UIApplication) {
    
     localNotificationClearBadgeNumber()
}

func applicationWillEnterForeground(_ application: UIApplication) {
    
    application.cancelAllLocalNotifications()
}

其中

JPUSHService.setBadge(0)

是为了同步极光后台的角标值,等下次推送时,传过来的字段会在这个0的基础上加1(一般后端调用极光是值"+1",而不是具体的某个值)。

上一篇 下一篇

猜你喜欢

热点阅读