![](/img/trans.png)
[英]Execute few lines of code when received silent push notification and app is running in background, ios
[英]Silent push notification (background) not received on macOS Catalina (Catalyst app)
我目前正在执行推送通知,从我们的后端服务器,以我们的应用程序(卡特琳娜的MacOS和iOS -相同的代码库),使用苹果推送通知和(生成从keyid的,teamId,智威汤逊认证的基于令牌的方式...&在签约使用在 Apple 开发者控制台中生成的私钥)向 APN 服务发送推送。
我面临的问题是我可以成功发送“警报”通知(状态 200,带有标题apns-push-type: alert
)并在我的 iOS 和 MacOS 设备上接收它们(推送通知在生产和沙盒模式下成功出现)但出于某种原因,“静默”推送(带有标题apns-push-type: background
)仅在我的 iOS 设备(iPhone)上接收,而在我的 Mac 上无法接收(从不调用AppDelegate
didReceiveRemoteNotification(...)
)。
到目前为止我做了什么:
apns-push-type: background
apns-topic: my.bundle.id
(这对于沙箱/生产是不同的)apns-priority: 5
(仅在提供后台推送时)authorization: mytoken
(必须如此,否则 APN 服务不会响应状态 200)我正在执行发送推送的 APNs 请求是:
我在请求正文中发送到 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 应用程序根本不支持的东西?
哇,愚蠢的问题。 我对 APNs 头痛相当熟悉,但从最新的文档中突然出现了一些东西:
此外,通知的 POST 请求应包含值为 background 的 apns-push-type 头字段和值为 5 的 apns-priority 字段。 APNs 服务器在向其发送推送通知时需要 apns-push-type 字段Apple Watch,并为所有平台推荐它。 有关更多信息,请参阅创建并向 APNs 发送 POST 请求。
优先级 5 的事情有什么不同吗?
此外,我通常尝试解决这些问题的方法是在存档中进行测试,而不是在 Xcode 构建中进行测试。 AFAIK prod 推送服务器只能发送到 App Store、ad-hoc、企业或 testflight 构建,所以如果你只是从 Xcode 构建,我认为你不会收到任何关于生产 apns 的推送通知。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.