APNS 在前台的时候 收到通知 走什么方法??


(拖不垮打不烂) #1

现在app在后台,能收到通知,我现在需要app在前台时候 收到通知后,刷新界面.请问下: app在前台走什么方法??


#2

iOS 10 在前台收到消息才会展示,实现方法

// iOS 10 Support
- (void)jpushNotificationCenter:(UNUserNotificationCenter *)center  willPresentNotification:(UNNotification *)notification withCompletionHandler:(void (^)(NSInteger))completionHandler {
  // Required
  NSDictionary * userInfo = notification.request.content.userInfo;
  if([notification.request.trigger isKindOfClass:[UNPushNotificationTrigger class]]) {
    [JPUSHService handleRemoteNotification:userInfo];
  }
  else {
     // 本地通知
  }
  completionHandler(UNNotificationPresentationOptionBadge|UNNotificationPresentationOptionSound|UNNotificationPresentationOptionAlert); // 需要执行这个方法,选择是否提醒用户,有Badge、Sound、Alert三种类型可以设置
}

iOS10以下的只会当app处于后台或者杀死时展示通知,点击后才会走获取消息的方法。


(拖不垮打不烂) #3

我用这个方法了 但是我用的效果是app在后台的时候 出现消息提示框


#4

嗯?用的哪个方法,iOS10的willPresentNotification
是当app处于前台,此时你推送消息,那么也会将这条消息以通知的形式提醒出来

而iOS 10 以下的是不会的,只有你退到后台,才会通知你


#5

或者你可以考虑使用极光提供的自定义消息(应用内消息),该消息是只有当app处于前台的时候才会收到,且默认是不展示的。


(拖不垮打不烂) #6

看来是我理解错了 我先试试效果 不行在问你 谢谢啊


(拖不垮打不烂) #7

我现在问题是 收到通知后 需要刷新页面 但是我在您说的方法里设置刷新界面了 app还是老样子 所以我在想是不是我的刷新页面方法写错位置了


#8

e ,你写在哪个方法里面的,你得看那个方法有没有被调用,你写的刷新页面的方法有没有调用。

你参考下这个帖子的讨论呢,看是否有所帮助


(拖不垮打不烂) #9

刚刚看了下 前台收到通知 没有走willPresentNotification 因为代码之前是别人写的 我看他写的代码用到了didReceiveRemoteNotification 和didReceiveRemoteNotification:(NSDictionary *)userInfo
fetchCompletionHandler: 如果这3个代码全写上 会不会有冲突??


#10

不同的情况下走不同的方法,既然走了这个remote,说明你推送的时候也推送了content-available: 1


(拖不垮打不烂) #11

根据你的解释 断点后大概知道代码添加在哪了 谢谢啊


(拖不垮打不烂) #12

在吗 有个问题请教 谢谢