2017-06-15 52 views
1

我想崩潰/合併屬於我的應用程序中相同事件的多個通知。 iOS 10在有效負載中引入了密鑰名稱apns-collapse-id。文檔說,多個具有相同apns-collapse-id的遠程通知將合併並顯示爲單個通知。apns-collapse-id不合並多個通知iOS 10

因此,我們的通知有效載荷中有有效載荷apns-collapse-idthread-id。不幸的是,由於沒有太多內容在線解釋這些鍵的實際工作方式,爲了安全起見,我們對apns-collapse-idthread-id使用了相同的唯一值。

我們期待多個遠程通知與apns-collapse-id合併。這不是偶然。

很少有人建議APNS崩潰不是免費的,我必須實施UNNotificationContentExtension並手動處理通知。我知道我可以添加和刪除已發佈的本地通知,但不確定如何更新已發佈的遠程通知。

這裏是我們的有效載荷的樣子

payload { 
    "aps": { 
     "alert": { 
      "title": "Some title : ", 
      "body": "Some body text" 
     }, 
     "sound": "default", 
     "payload": { 
      "target": { 
       "some key" : "Some value" 
      }, 
      "thread_id": "Some_string_155863", 
     }, 
     "apns-collapse-id": "Some_string_155863", 
     "mutable-content": 1, 
     "thread-id": "Some_string_155863", 
     "badge": 33 
    }, 
    "thread-id": "Some_string_155863", 
    "apns-collapse-id": "Some_string_155863", 
    "mutable-content": 1 
} 

,你可以看到APNS崩潰-ID,線程ID在JSON重複多次,因爲我們不知道確切位置,讓他們

我們還沒有使用HTTPS/2,但我相信iOS 10 notfication仍然支持傳統的HTTPS。我不是一個真正的網絡人,所以我不完全理解這些東西。忽略我對Https和Http2的傲慢

有沒有人設法讓apns-collapse-id工作?請幫忙。

+0

我也在同樣的問題中闖入。你解決了這個問題嗎?如果是這樣,請解釋你是如何解決這個問題的。提前致謝! – NandhaKumar

+1

@nandhakumar:我們唯一改變的是從HTTPS遷移到HTTP/2版本,一切開始像魅力一樣工作。我已經在蘋果雷達上提出了相同的票。他們還沒有迴應。我問蘋果的工程師,他也應該使用傳統的HTTPS。我無法讓它與HTTPS協同工作。所以你最好的選擇是我相信HTTP/2 –

+1

@nandhakumar:蘋果公司回覆說:「apns-collapse-id只支持在HTTP/2中,並且這個字段應該在頭部而不是有效載荷中。」 –

回答

3

apns-collapse-id是一個請求頭,所以你需要使用HTTP服務而不是傳統的二進制接口。

+0

問我的後端團隊,以驗證你的答案哥們:)如果發現正確我會接受並投票你回答:)感謝您抽出時間和回答我的問題。 –

+1

Apple回答「apns-collapse-id只在HTTP/2中受支持,並且此字段應位於標頭而非有效負載中」您的答案部分正確。我明白你的意思是「HTTP服務而不是傳統的二進制接口」請澄清並接受我們的回答:)欣賞努力,因此投票:D –

+0

可以請你分享代碼或php文件發送推送和使用'apns-collapse-id' – Prasath