使用 SNS 接收推送通知 - AWS Mobile SDK

Xamarin 的AWS行動 SDK 現在已包含在AWS SDK for .NET. 本指南參考 Xamarin 行動 SDK 的封存版本。

本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。

使用 SNS 接收推送通知

本文檔介紹如何使用 Amazon Simple Notification Service (SNS) 和適用於 .NET 和 Xamarin 的 AWS 移動軟件開發工具包向 Xamarin iOS 應用程序發送推送通知。

項目設定

先決條件

您必須完成設定適用於 .NET 和 Xamarin 的 AWS Mobile SDK,然後再開始本教程。

設定 SNS 的許可

按照步驟 2設定適用於 .NET 和 Xamarin 的 AWS Mobile SDK將下面提到的策略附加到應用程序的角色。這將為您的應用程序授予訪問 SNS 的適當權限:

  1. 前往IAM 主控台並選擇您想要配置的 IAM 角色。

  2. 按一下連接政策下,選擇卓越亞馬遜 SNFullAccess策略,然後單擊連接政策

警告

使用卓越亞馬遜 SNFullAccess不建議在生產環境中使用。我們在此使用它來幫助您快速啟動並執行。如需有關指定 IAM 角色的許可的詳細資訊,請參IAM 角色許可概觀

獲得蘋果 iOS 開發者計劃的會員資格

您需要在物理設備上運行應用程序才能接收推送通知。要在設備上運行應用程序,您必須在蘋果 iOS 開發者計劃會員。擁有成員資格後,您可以使用 Xcode 來生成簽名身份。如需詳細資訊,請參 Apple 的應用程式分發快速入門文件中)。

創建 iOS 證書

首先,您需要建立 iOS 憑證。然後,您需要創建一個配置為推送通知配置的置備配置文件。作法:

  1. 前往蘋果開發者會員中心下,按一下證書、標識符和配置文件

  2. 按一下識別碼iOS 應用程式,請單擊網頁右上角的加號按鈕以添加新的 iOS 應用程序 ID,然後輸入應用 ID 描述。

  3. 向下捲動到新增 ID 後綴部分,然後選擇明確應用程式 ID並輸入捆綁標識符。

  4. 向下捲動到應用程式服務部分,然後選擇推送通知

  5. 按一下 Continue (繼續)

  6. 請按 Submit (提交)。

  7. 按一下完成

  8. 選擇剛剛創建的應用程序 ID,然後單擊Edit (編輯)

  9. 向下捲動到推送通知區段。按一下建立憑證開發 SSL 憑證

  10. 按照説明創建證書簽名請求 (CSR)、上傳請求並下載將用於與 Apple 通知服務 (APNS) 通信的 SSL 證書。

  11. 返回證書、標識符和配置文件(憑證已建立!) 頁面上的名稱有些許差異。按一下All (全部)設定檔

  12. 單擊右上角的加號按鈕以添加新的配置文件。

  13. 選擇iOS 應用程式開發,然後按一下Continue

  14. 選擇您的應用程式 ID,然後按一下Continue

  15. 選擇您的開發者憑證,然後按一下Continue

  16. 選取您的設備,然後按一下Continue

  17. 輸入配置式名稱,然後按一下Generate

  18. 下載並雙擊置備文件以安裝置配置文件。

有關置備為推送通知配置的配置文件的詳細信息,請參閲 Apple 的配置推播通知文件中)。

使用證書在 SNS 控制台中創建平台 ARN

  1. 執行KeyChain訪問應用程序,選擇我的憑證,然後右鍵單擊您生成的 SSL 證書以連接到 APNS,然後選擇匯出。系統將提示您指定文件的名稱和密碼以保護證書。證書將保存在 P12 文件中。

  2. 前往SNS 控制台,然後按一下應用程式位於屏幕左側。

  3. 按一下建立平台應用程式建立新 SNS 平台應用程式。

  4. 輸入應用程式名稱

  5. 選擇Apple 開發為了推播通知平台

  6. 按一下選取檔案,然後選擇導出 SSL 證書時創建的 P12 文件。

  7. 輸入您導出 SSL 證書時指定的密碼,然後單擊從檔案載入憑證

  8. 按一下建立平台應用程式

  9. 選擇剛剛創建的平台應用程序並複製應用程序 ARN。您在接下來的步驟中需要此資訊。

AddNuGetSNS 軟件包到您的項目

請按照設定適用於 .NET 和 Xamarin 的 AWS Mobile SDK新增亞馬遜簡單通知服務NuGet軟件包添加至您的項目。

建立 SNS 客户端

var snsClient = new AmazonSimpleNotificationServiceClient(credentials, region);

註冊應用程序以獲得遠程通知

要註冊應用程序,請調用RegisterForRemoteNotifications,如下所示。將下面的代碼放在AppDelegate.cs,在下面提示的位置插入您的平台應用程序 ARN:

public override bool FinishedLaunching(UIApplication app, NSDictionary options) { // do something var pushSettings = UIUserNotificationSettings.GetSettingsForTypes ( UIUserNotificationType.Alert | UIUserNotificationType.Badge | UIUserNotificationType.Sound, null ); app.RegisterUserNotifications(pushSettings); app.RegisterForRemoteNotifications(); // do something return true; } public override void RegisteredForRemoteNotifications(UIApplication application, NSData token) { var deviceToken = token.Description.Replace("<", "").Replace(">", "").Replace(" ", ""); if (!string.IsNullOrEmpty(deviceToken)) { //register with SNS to create an endpoint ARN var response = await SnsClient.CreatePlatformEndpointAsync( new CreatePlatformEndpointRequest { Token = deviceToken, PlatformApplicationArn = "YourPlatformArn" /* insert your platform application ARN here */ }); } }

從 SNS 控制台向終端節點發送消息

  1. 前往SNS 控制台 > 應用程序

  2. 選擇您的平台應用程序,選擇終端節點,然後單擊發佈至端點

  3. 在文字框中輸入短信,然後按一下發佈訊息發佈訊息。