macOS Catalina(Catalyst应用)未收到静音推送通知(背景)

问题描述 投票:4回答:1

我目前正在使用Apple Push Notifications和基于令牌的身份验证方式(从keyId,teamId生成JWT,从后端服务器到我们的应用程序(macOS Catalina和iOS-同一代码库)实现push notifications ,...以及使用Apple开发人员控制台中生成的私钥对其进行签名)以将推送发送到APN服务。

我面临的问题是,我可以成功发送“警报”通知(状态200,标头为apns-push-type: alert),并在我的iOS和MacOS设备上接收它们(推送通知在生产和沙箱模式下成功显示),但对于出于某些原因,“无声”推送(带有标题apns-push-type: background)仅在我的iOS设备(iPhone)上收到,但在我的Mac上不接收((从不调用didReceiveRemoteNotification(...)中的AppDelegate)。

到目前为止我所做的:

  • 确保正确配置了APN请求标头以进行静默推送:apns-push-type: background
  • 请确保具有正确的APN主题标头:apns-topic: my.bundle.id(对于沙箱/生产,这是不同的)
  • 添加了“半必需的”优先级标题:apns-priority: 5(仅在提供后台推送时)
  • [已验证创建的JWT有效并且已在APN auth标头中使用:authorization: mytoken(必须是这种情况,否则APN服务将不会以状态200进行响应)
  • 确认我的应用程序具有Xcode中定义的正确权利和功能(我的推理:必须是这种情况,否则'alert'推送通知也将不起作用)
  • 再次检查是否允许/启用Mac应用程序的推送通知(已检查系统设置)
  • 确保发送推送到的设备令牌实际上是来自用于接收推送的设备(例如,我的MacBook)
  • 检查我用来签名JWT的私钥是否具有APN功能
  • 在Mac应用程序运行但未聚焦时也经过聚焦时测试

我正在执行的发送推送的APN请求是:

我正在发送到请求正文中的APN服务的有效负载(JSON)如下:

{
   "aps": {
      "content-available": 1 # defines push as "silent"
   },
   "data": { #some key-value pairs here }
}

[在任何情况下(无论是生产环境还是沙箱环境,都具有iOS和macOS的设备令牌),我对APN的请求都会返回状态代码200。我的MacBook运行的是Catalina 10.15.3。我在这里可能做错了什么,或者Catalyst应用程序根本不支持某些事情?

ios macos push-notification apple-push-notifications catalyst
1个回答
1
投票
哇道奇问题。我对APN的头痛问题相当熟悉,但是latest docs突然出现了一些问题:
© www.soinside.com 2019 - 2024. All rights reserved.