app杀死进程之后,如何获取badge信息来设置小红点


(无望) #1

具体使用什么方法,杀死进程之后进入app后,调用什么方法来获取launchOptions信息


#2

推送的时候就可以设置角标,。杀死后进入 App,并不会走获取消息的方法,可以找一下系统的 API 是否可以获取角标值。


(AHHC) #3

遇到个角标问题,已经收到了N个推送角标显示N,这个时候杀死进程,再收到新的推送,角标显示1而不是N+1,请问怎么解呀?


#4

你最后收到的这条消息,推送的时候角标设置的是什么,看你获取到的消息内容。

以及这个 N 是多少


(AHHC) #5

N > 1,比如我们测试时看到角标数量的是5,消息未读数也是5,不读消息按Home键最小化,然后杀死进程,看icon的角标还是5,这个时候有新消息到达,5就变成1了。


#6

iOS 系统上的这个角标更改只有这几种情况
1、自己调了本地设置角标的 API 设置了
2、推送的时候传过来的角标是 1


(AHHC) #7

最后收到的这条消息其实没进App,进程已经被杀死了。点击通知栏里的新消息通知,进入方法:

- (void)jpushNotificationCenter:(UNUserNotificationCenter *)center didReceiveNotificationResponse:(UNNotificationResponse *)response withCompletionHandler:(void (^)())completionHandler  API_AVAILABLE(ios(10.0))

后拿到的badge数量是1。

所有设置badge的地方都统一走这个方法:

- (void)setBadge:(NSInteger)badge {
    [JPUSHService setBadge:badge];
    [UIApplication sharedApplication].applicationIconBadgeNumber = badge;
}

#8

那你检查下你推送的消息传的 badge 是什么,是不是就是 1


(AHHC) #9

不是1,服务器端同学是做+1处理的,而且App端也尝试过在进程被杀死之前调用了 [JPUSHService setBadge:badge]; 方法,输入参数badge就是5,打断点确认过,这样做了也不行。。


#10

你们的 Appkey 和最后收到的这条消息的 MessageID 给我看一下,

你测试下我们的 demo看看,以及检查是不是 iOS 10 的 service extension 操作对你们的角标做了处理


(AHHC) #11

私信发给你了,辛苦您查一下。我们的App没有使用service extension,我看下你们的demo吧