簡體   English   中英

如何為使用AWS SNS創建的遠程推送通知設置APNS通知標識符?

[英]How can I set APNS notification identifiers for remote push notifications created using AWS SNS?

我在后端使用AWS SNS SDK向我的應用程序發送遠程通知,我需要能夠設置通知標識符,以便默認情況下某些通知替換以前提供的副本,如iOS開發人員文檔中所述

如果在計划新通知時使用相同的標識符,系統將使用該標識符刪除先前安排的通知,並將其替換為新標識符。

這對於本地通知很容易,因為它們是在應用程序中安排的,您可以在安排通知時設置通知標識符。

但是,通過遠程通知,我似乎找不到使用SNS SDK設置通知標識符的任何方法(在用.NET編寫的Lambda中)。

根據API參考, SNS返回帶有消息ID的響應 (可能是通知標識符),但我看不到自己設置標識符的任何方法。

有誰知道怎么做? 或者SNS根本不允許這樣做?

您可以自定義有效負載,如AWS所述: https//docs.aws.amazon.com/sns/latest/dg/mobile-push-send-custommessage.html

使用Amazon SNS控制台在消息中發送特定於平台的有效負載時,數據必須是鍵值對字符串,並格式化為帶有引號轉義的JSON。 以下示例(包括格式和空格以提高可讀性)顯示了GCM平台的示例自定義消息,其中消息體內具有鍵值對並格式化為JSON。

{“GCM”:“{”data“:{”message“:”查看這些令人敬畏的優惠!“,”網址“:”www.amazon.com“}}”}

您可以將您的ID添加為自定義字段。

編輯:如果您需要添加標題,您可能希望通過Lambda函數代理請求: https//docs.aws.amazon.com/sns/latest/dg/sns-lambda.html這是一個主題這里顯示如何使用Lambda添加響應頭: 從AWS lambda設置http響應頭

似乎AWS SNS完全不允許自定義通知標識符,也不允許自定義發送到APNS的HTTP標頭

唯一可行的解​​決方案是,在到達時使遠程推送通知自行替換,似乎是通過使用通知服務擴展檢查新的通知到達時發送的通知,並用新版本替換任何以前的副本

它似乎一致地工作,您可以選擇在通知JSON中設置自定義有效內容屬性或thread-id屬性,然后在發送每個通知之前在設備上進行檢查。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM