【问题标题】:NSURLSessionDataTask when running in background remote notification with content_available =1NSURLSessionDataTask 在 content_available =1 的后台远程通知中运行时
【发布时间】:2015-05-25 16:50:25
【问题描述】:

我的应用正在发送通知(如聊天应用),通知其他应用它需要从服务器获取消息,即使它不在前台也是如此。

我计划一个 APN 使用Content_available=1 发送通知,然后让应用程序调用服务器以获取新消息。

我的问题是,

  • didReceiveRemoteNotification 是否会一直被调用,只要它在后台运行)?

  • 我不打算使用后台传输服务,而是在 didReceiveRemoteNotification 委托中进行 fetch 调用?

  • 对使用NSURLSessionDATATask 来实现这一点有任何顾虑(与NSURLSessionBackgroundTask 不同?

【问题讨论】:

    标签: ios background notifications push-notification nsurlsession


    【解决方案1】:

    如果用户已明确终止应用程序,则永远不会发送后台推送。

    除此之外,在 8.1 之前,后台推送都是可靠的(尽管不是 100% 保证)。

    从 iOS 8.1 开始,只有在设备正在充电时,后台推送才会在发送后立即发送到应用。否则应用可能要等几个小时或几个小时后才能收到推送。

    因此,如果您需要应用程序在消息可用后的短时间内收到新消息的通知,那么后台推送现在是无用的。

    我和其他许多人都希望这可能会在 iOS9 中有所改变,但我并不乐观。

    【讨论】:

    • 是指“后台推送”到内容可用=1 的远程通知吗?请详细说明。 ty
    • 是的,这就是我所指的
    • 我了解 APN 传递消息所需的时间是不确定的,但在我的测试中,推送通知确实会在几分钟内传递。
    • 我发现它通常只有几秒钟。但是对于更高版本的 iOS,如果设备没有被充电(直接或通过 USB 连接),它通常不会在几个小时内交付。这仅适用于后台推送,不适用于前台推送。如果你想自己测试它,你必须使用生产环境来评估它,开发环境的行为不同。在开发环境中,推送将在几秒/分钟内交付,而生产环境不会发生这种情况。
    • 在苹果论坛devforums.apple.com/message/1092217查看这个帖子
    猜你喜欢
    • 2018-02-14
    • 2015-03-16
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-12-28
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多