[英]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.