如果应用程序在iOS 9中处于后台,则不会显示推送通知

时间:2015-10-22 09:42:57

标签: ios push-notification ios9

我遇到推送通知问题,它只影响运行iOS 9的设备:

  1. 我的应用已安装在一组设备中。我运行它并使用以下代码注册推送通知:

    if ([application respondsToSelector:@selector(registerUserNotificationSettings:)]) 
    {
        UIUserNotificationType userNotificationTypes = (UIUserNotificationTypeAlert | UIUserNotificationTypeBadge | UIUserNotificationTypeSound);
        UIUserNotificationSettings *settings = [UIUserNotificationSettings settingsForTypes:userNotificationTypes categories:nil];
        [application registerUserNotificationSettings:settings];
        [application registerForRemoteNotifications];
    }
    

  2. 该应用在所有设备上都有背景信息。

  3. 我向所有设备发送推送通知 - 并获得成功的响应。
  4. 所有iOS 8设备都会在通知中心显示推送通知。
  5. 没有iOS 9设备在通知中心显示推送通知。
  6. 在任意iOS 9设备中随机打开应用程序。显示通知(由application:didReceiveRemoteNotification:)触发。
  7. iOS 9上有什么变化吗?即使应用程序未处于活动状态,如何在iOS 9上显示推送通知? 我不想使用通知来获取后台的任何内容,我只需要显示一条消息。

3 个答案:

答案 0 :(得分:1)

最后,我必须做两件让它适合我的事情:

  • 启用" 远程通知"对于应用程序功能下的后台模式(在目标设置中)
  • 以高优先级发送通知(当它们以低优先级发送时,它们不会在后台处理应用程序)

答案 1 :(得分:0)

看来你没问题。这是我的代码,我也在iOS 9.0中收到通知。

$(document).ready(function () {
// Action on mouseover from pop-up
$('#activity').mouseover(function(e) {
    $('#activity').show();
});

// Action on mouseout from pop-up
$('#activity').mouseout(function() {
    setTimeout(function() { $("#activity").fadeOut(1500); }, 15000);
});

});

答案 2 :(得分:0)

我认为用户必须点按通知才能将应用置于前台,然后会调用application(_:didReceiveRemoteNotification:)

见这里:https://www.raywenderlich.com/123862/push-notifications-tutorial