注册

求远程推送的一些问题

想问下收到远程通知后的角标 初始是0,能不能设置他为我历史中未读的数量呢?
还有一个问题是, 当前页面为chatViewController,这个页面里我打开相册或者相机, 然后不关闭,直接进到后台,
这时候收到推送后,点击推送进入到当前chatViewController, 但是原先在chatViewController的viewDidLoad里添加的名为@"setupUnreadMessageCount"的通知不走了,想问下这是什么情况,用Demo测试了 也是这情况
已邀请:
1.收到推送提示时,aps数据中badge为在服务端,接收方用户的离线消息总数,badge不会添加用户之前的本地未读消息数,因为未读消息数不会同步到服务器做存储,只是针对本地存储而言。
2.App切入本地,此时长连接没有断开前,UI中所看到的横幅为本地通知,此时接收到的消息是通过长连接消息回调接收的,在消息接收回调中会处理消息的已读状态,而且NSNotification的执行,是需要你自己主动去调用postNotificationName
- (void)didReceiveUserNotification:(UNNotification *)notification
{
NSDictionary *userInfo = notification.request.content.userInfo;
if (userInfo)
{
if ([self.navigationController.topViewController isKindOfClass:[ChatViewController class]]) {
// ChatViewController *chatController = (ChatViewController *)self.navigationController.topViewController;
// [chatController hideImagePicker];
}

NSArray *viewControllers = self.navigationController.viewControllers;
[viewControllers enumerateObjectsWithOptions:NSEnumerationReverse usingBlock:^(id obj, NSUInteger idx, BOOL *stop){
if (obj != self)
{
if (![obj isKindOfClass:[ChatViewController class]])
{
[self.navigationController popViewControllerAnimated:NO];
}
else
{
NSString *conversationChatter = userInfo[kConversationChatter];
ChatViewController *chatViewController = (ChatViewController *)obj;
if (![chatViewController.conversation.conversationId isEqualToString:conversationChatter])
{
[self.navigationController popViewControllerAnimated:NO];
EMChatType messageType = [userInfo[kMessageType] intValue];

chatViewController = [[ChatViewController alloc] initWithConversationChatter:conversationChatter conversationType:[self conversationTypeFromMessageType:messageType]];

[self.navigationController pushViewController:chatViewController animated:NO];
}
*stop= YES;
}
}
else
{
ChatViewController *chatViewController = nil;
NSString *conversationChatter = userInfo[kConversationChatter];
EMChatType messageType = [userInfo[kMessageType] intValue];

chatViewController = [[ChatViewController alloc] initWithConversationChatter:conversationChatter conversationType:[self conversationTypeFromMessageType:messageType]];

[self.navigationController pushViewController:chatViewController animated:NO];
}
}];
}
else if (_chatListVC)
{
[self.navigationController popToViewController:self animated:NO];
[self setSelectedViewController:_chatListVC];
}
}
我重新下载了最新的Demo.当我在chatViewController页面打开相机再回到后台来接受消息的时候,
发现也是不走setupUnreadMessageCount的.
 
更新...
我的天= =, 居然是直接在register apns中写了
UIApplication *application = [UIApplication sharedApplication];
application.applicationIconBadgeNumber = 0;
我说怎么- -不走setupUnreadMessageCount

要回复问题请先登录注册