【问题标题】:How do you receive APNS payload data from a Silent Notification?您如何从静默通知中接收 APNS 有效负载数据?
【发布时间】:2021-03-15 00:27:39
【问题描述】:

我正在 XCode 12.2 中测试通知。测试警报样式通知非常容易。您只需将它们拖到模拟器中的应用程序上,有效负载就会显示在:

func application(_ application: UIApplication, didReceiveRemoteNotification userInfo: [AnyHashable: Any], fetchCompletionHandler completionHandler: @escaping (UIBackgroundFetchResult) -> Void) { 通知Dispatcher.process(userInfo) 完成处理程序(.newData) }

现在,在测试静默通知时,我可以在后台模式下设置“后台获取”后触发静默通知。然后我进入:

func application(_ application: UIApplication, performFetchWithCompletionHandler completionHandler: @escaping (UIBackgroundFetchResult) -> Void) {
    debugPrint("hello silence ")
}

如果我希望应用程序执行与有效负载中的数据无关的操作,这很好。如何查看实际的 apns 负载数据?

我正在尝试访问我正在使用的这个有效负载示例:

{
  "aps": {
    "category": "tasks",
    "content-available": 1,
    "thread-id": "tasks"
  },
  "resource": {
    "resourceType": null,
    "additionalProperties": {
      "taskIds": [
        "xxx"
      ],
      "classification": "xxx",
      "status": "xxx"
    }
  }
}

【问题讨论】:

    标签: swift apple-push-notifications


    【解决方案1】:

    如果设置了content-available 标志,则当前无法模拟静默推送通知,因为它调用了错误的委托方法。

    如果您尝试使用实际设备并发送真正的推送通知,它应该调用application(:didReceiveRemoteNotification:fetchCompletionHandler:) 委托并且您可以访问有效负载。 还有一些关于这个的论坛帖子,比如https://developer.apple.com/forums/thread/652649

    【讨论】:

      猜你喜欢
      • 2017-12-08
      • 2016-07-19
      • 1970-01-01
      • 2016-06-14
      • 2016-09-30
      • 1970-01-01
      • 2020-09-28
      • 2017-12-04
      • 1970-01-01
      相关资源
      最近更新 更多