【问题标题】:iOS. Handling push notifications than app is not runningIOS。处理推送通知而不是应用程序未运行
【发布时间】:2016-10-11 23:05:36
【问题描述】:

比应用程序收到推送并且应用程序没有运行我需要调用我的 API 的网络方法。我需要在没有来自用户的任何交互的情况下静默进行(比如点击通知或其他东西 - 没有它)

我将推送有效负载中的内容可用密钥设置为 1。

我该怎么做?

我实现了

 func application( application: UIApplication, didReceiveRemoteNotification userInfo: [NSObject : AnyObject], fetchCompletionHandler handler: (UIBackgroundFetchResult) -> Void) {

作为测试,我添加了

  UIApplication.sharedApplication().applicationIconBadgeNumber = 20

但看起来它不起作用,因为我关闭了我的应用并发送了测试通知,bagde 编号不是 20

【问题讨论】:

    标签: ios push-notification notifications apple-push-notifications remote-notifications


    【解决方案1】:

    这是因为您的应用没有运行。当应用程序在后台时,didReceiveRemoteNotification 可以被调用。如果您的应用程序被退出/终止,则无法静默执行某些操作(除了更新徽章,您需要将徽章编号直接发送到通知的有效负载中)。

    【讨论】:

      【解决方案2】:

      如果您想在不启动应用程序的情况下更新应用程序的徽章,您需要从您的服务器以推送通知的形式发送它。请参阅 Apple 文档:https://developer.apple.com/library/content/documentation/NetworkingInternet/Conceptual/RemoteNotificationsPG/Chapters/TheNotificationPayload.html

      您实现的方法仅在应用程序运行时调用。但如果你在推送负载中包含“badge”参数,iOS 会自动为你设置。

      【讨论】:

        【解决方案3】:

        如果您需要触发从服务器下载内容的 API 调用,则需要将推送负载中的 content-available 键设置为 1。

        根据 Apple 文档中的 Using Push Notifications to Initiate a Download

        如果您的服务器在新内容可用时向用户的设备发送推送通知 对于您的应用,您可以要求系统在后台运行您的应用 以便它可以立即开始下载新内容。这 这种后台模式的目的是最大限度地减少时间 在用户看到推送通知和您的应用程序之间经过 能够显示相关的内容。应用程序通常是 大约在用户看到通知的同时醒来 但这仍然会给您比其他方式更多的时间。

        要支持此后台模式,请启用远程通知 选项卡的“功能”选项卡的“背景模式”部分 你的 Xcode 项目。 (您也可以通过包括 UIBackgroundModes 键与应用程序中的远程通知值 Info.plist 文件。)

        对于触发下载操作的推送通知, 通知的有效负载必须包含内容可用密钥及其 值设置为 1。当该键存在时,系统会唤醒应用程序 后台(或将其启动到后台)并调用应用程序 代表的 应用程序:didReceiveRemoteNotification:fetchCompletionHandler: 方法。您对该方法的实现应该下载 相关内容并将其集成到您的应用中。

        【讨论】:

        • 如果你设置为1,那么应用即使没有运行也会在后台唤醒并调用didReceiveRemoteNotification方法。您可以通过该方法调用 API 并存储新数据。希望对您有所帮助,您走在正确的轨道上!
        猜你喜欢
        • 1970-01-01
        • 2012-08-20
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2011-06-14
        相关资源
        最近更新 更多