本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。
使用平台特定承載發佈 Amazon SNS 通知
您可以使用 AWS Management Console 或 Amazon SNS APIs 將具有平台特定承載的自訂訊息傳送到行動裝置。如需使用 Amazon 的相關資訊 SNSAPIs,請參閱行動推播動API作和中的SNSMobilePush.java
檔案snsmobilepush.zip
。
傳送JSON格式化的訊息
當您傳送平台特定的承載時,資料必須格式化為JSON索引鍵值配對字串,並將引號逸出。
下列範例顯示平FCM台的自訂訊息。
{ "GCM": "{\"fcmV1Message\": {\"message\": {\"notification\": {\"title\": \"Hello\", \"body\": \"This is a test.\"}, \"data\": {\"dataKey\": \"example\"}}}}" }
傳送平台特定訊息
除了將自訂資料做為鍵值對傳送,您也可傳送平台特定的鍵值對。
下列範例顯示參數的包含,以time_to_live
及FCM參數中自訂資料索引鍵值配對collapse_key
之後的FCMdata
內容。
{ "GCM": "{\"fcmV1Message\": {\"message\": {\"notification\": {\"title\": \"TitleTest\", \"body\": \"Sample message for Android or iOS endpoints.\"}, \"data\":{\"time_to_live\": 3600,\"collapse_key\":\"deals\"}}}}" }
如需 Amazon 支援的每個推播通知服務所支援的金鑰值配對清單SNS,請參閱下列內容:
重要
Amazon SNS 現在支持火力地堡雲消息傳遞(FCM)HTTPv1,API用於向 Android 設備發送移動推送通知。
2024 年 3 月 26 日 — Amazon API 為蘋果設備和推送目的地SNS支持 FCM HTTP v1。我們建議您API在 2024 年 6 月 1 日或之前將現有的行動推送應用程式遷移至最新的 FCM HTTP v1,以避免應用程式中斷。
-
APNs文件中的承載金鑰參考
-
FCM文檔中的火力地堡雲消息傳遞HTTP協議
-
在ADM文檔中發送消息
在多個平台上向應用程式傳送訊息
若要將訊息傳送至多個平台裝置上安裝的應用程式 (例如FCM和)APNs,您必須先將行動端點訂閱 Amazon 中的某個主題,SNS然後將訊息發佈到主題。
下列範例顯示要傳送至APNs、FCM和訂閱行動端點的訊息ADM:
{ "default": "This is the default message which must be present when publishing a message to a topic. The default message will only be used if a message is not present for one of the notification platforms.", "APNS": "{\"aps\":{\"alert\": \"Check out these awesome deals!\",\"url\":\"www.amazon.com\"} }", "GCM": "{\"data\":{\"message\":\"Check out these awesome deals!\",\"url\":\"www.amazon.com\"}}", "ADM": "{\"data\":{\"message\":\"Check out these awesome deals!\",\"url\":\"www.amazon.com\"}}" }
將消息APNs作為警報或背景通知發送
Amazon SNS 可以將訊息傳送到APNs作為alert
或background
通知 (如需詳細資訊,請參閱APNs文件中的將背景更新推送到您的應用程式
-
alert
APNs通知會透過顯示警示訊息、播放聲音或將徽章新增至應用程式的圖示來通知使用者。 -
background
APNs通知會喚醒或指示您的應用程式在不通知使用者的情況下根據通知內容採取行動。
指定自訂 APNs 標頭值
建議您使用 Amazon SNS Publish
API 動作, AWS SDKs或指定AWS.SNS.MOBILE.APNS.PUSH_TYPE
保留訊息屬性的自訂值 AWS CLI。下列CLI範例會background
針content-available
對指定apns-push-type
的主題設定為1
和。
aws sns publish \ --endpoint-url https://sns.us-east-1.amazonaws.com \ --target-arn arn:aws:sns:us-east-1:123456789012:endpoint/APNS_PLATFORM/MYAPP/1234a567-bc89-012d-3e45-6fg7h890123i \ --message '{"APNS_PLATFORM":"{\"aps\":{\"content-available\":1}}"}' \ --message-attributes '{ \ "AWS.SNS.MOBILE.APNS.TOPIC":{"DataType":"String","StringValue":"com.amazon.mobile.messaging.myapp"}, \ "AWS.SNS.MOBILE.APNS.PUSH_TYPE":{"DataType":"String","StringValue":"background"} \ "AWS.SNS.MOBILE.APNS.PRIORITY":{"DataType":"String","StringValue":"5"}}', \ --message-structure json
推斷承載中的APNs推送類型標頭
如果您未設SNS定apns-push-type
APNs標頭,Amazon 會將標題設定為alert
或background
根據您JSON格式化的APNs承載組態aps
字典中的content-available
金鑰設定標頭。
注意
Amazon 能SNS夠推斷只alert
或background
標題,雖然標apns-push-type
題可以設置為其他值。
-
apns-push-type
已設定為alert
-
如果
aps
字典僅包含設定為content-available
的1
,且一個以上金鑰可觸發使用者互動。 -
如果
aps
字典包含設定為content-available
的0
,或者content-available
金鑰不存在。 -
如果
content-available
金鑰的值不是整數或布林值。
-
-
apns-push-type
已設定為background
-
如果
aps
字典僅包含設定為content-available
的1
,且沒有其他金鑰可觸發使用者互動。重要
如果 Amazon SNS 傳送的原始組態物件APNs做為僅背景通知,您必須在字典
1
中包含content-available
set 為。aps
雖然您可以加入自定金鑰,aps
字典絕對不能包含可觸發使用者互動的任何金鑰 (例如:通知、徽章或聲音)。
-
以下是原始組態物件範例。
{ "APNS": "{\"aps\":{\"content-available\":1},\"Foo1\":\"Bar\",\"Foo2\":123}" }
在此範例中,Amazon 會將訊息的apns-push-type
APNs標頭SNS設定為background
。當 Amazon SNS 偵測到apn
字典包含設定為的金content-available
鑰 (1
且不包含任何其他可觸發使用者互動的金鑰) 時,就會將標頭設定為。background