美文网首页
APP在前台收到推送消息时也会弹出提醒?

APP在前台收到推送消息时也会弹出提醒?

作者: 一叶知秋0830 | 来源:发表于2019-12-21 15:13 被阅读0次

      在iOS 10之前的系统,APP在后台或者APP被杀掉后,收到推送消息时会弹出通知提醒,如果APP是在前台运行的话,收到推送消息时是不会弹出通知的,这种情况下需要开发者自己处理弹框提醒的逻辑。
      但在iOS 10之后的系统,APP处于前台时,收到推送消息也会弹出系统通知,这时如果开发者自己也写了弹框提醒,那么就会出现系统提醒和自定义提醒共存的问题,这可能不是我们想要的效果。那么如何去掉系统的提醒呢?我们先来看下iOS 10系统下收到推送消息时的代理方法(我这里集成的是极光推送):

    - (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];
        }
        completionHandler(UNNotificationPresentationOptionAlert); // 需要执行这个方法,选择是否提醒用户,有 Badge、Sound、Alert 三种类型可以选择设置
    }
    

      其中关键就在于completionHandler()这个方法,其参数有UNNotificationPresentationOptionAlertUNNotificationPresentationOptionSoundUNNotificationPresentationOptionBadge三种,经测试发现设置为第一个时只有通知弹出提醒,没有声音提醒;设置为第二个时只有声音提醒,没有通知弹出提醒;设置为第三个时没有任何效果。我们可以根据自己的需求来设置参数,如果你既要弹出提醒也要声音提醒,那么可以把3个值都加进去,也就是completionHandler(UNNotificationPresentationOptionBadge | UNNotificationPresentationOptionSound | UNNotificationPresentationOptionAlert);

    相关文章

      网友评论

          本文标题:APP在前台收到推送消息时也会弹出提醒?

          本文链接:https://www.haomeiwen.com/subject/zpyiyctx.html