Amazon Simple Notification Service - AWSMobile SDK for Unity

所以此AWS適用於 Unity 的 Mobile SDK 現已包含在AWS SDK for .NET。本指南引用適用於 Unity 的 Mobile SDK 的存檔版本。如需詳細資訊,請參閱「」什麼是AWS適用於 Unity 的 Mobile SDK?

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

Amazon Simple Notification Service

使用 Amazon Simple Notification Service (SNS) 和 Unity SDK,您可以編寫可接收移動推送通知的 iOS 和 Android 應用程序。如需 SNS 的詳細資訊,請參Amazon Simple Notification Service

本主題將介紹如何配置適用於 Unity 的 AWS 開發工具包示例應用程序 SNSEXAMple.Unity,以便通過 Amazon SNS 接收移動推送通知。

您可以使用 Snsexample.Unity 示例創建 iOS 和安卓應用程序。iOS 和 Android 之間的配置步驟不同,請閲讀下面針對您目標平台的相應部分。

先決條件

使用此解決方案需要下列先決條件。

設定 SNS 的許可

創建 Cognito 份池時,將生成兩個 IAM 角色:

  • 幹邑 /<Identity-Pool-Name> _ 授權DefaultRole— 經過身份驗證的用户的默認 IAM 角色

  • 幹邑 <Identity-Pool-Name>/_DefaultRole— 未驗證使用者的默認 IAM 角色

您必須向這些角色添加訪問 Amazon SNS 服務的權限。若要執行此作業:

  1. 瀏覽至IAM 主控台,然後選擇要配置的 IAM 角色。

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

注意

使用卓越亞馬遜 SNSFullAccess在生產環境中,我們會使用它來讓您快速啟動和運行。如需為 IAM 角色指定許可的詳細資訊,請參IAM 角色許可概觀

iOS 先決條件

  • 蘋果 iOS 開發者計劃會員

  • 生成簽名標識

  • 創建為推送通知配置的置備配置文件

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

Android 先決條件

  • 安裝 Android SDK

  • 安裝 JDK

  • android-support-v4.jar

  • google-play-services.jar

配置 iOS 的統一示例應用

開啟 Unity (Unity) 編輯器並建立新專案。導入適用於 Unity 的 AWS 開發工具包包,方法是選擇資產/導入套件/自訂套件並選取aws-unity-sdk-SN-2.0.0.1. 單元包裝。確保導入套件對話框,然後單擊匯入

Unity 配置

執行下列步驟來設定 Unity 專案:

  1. 在 中專案窗格中,前往資產/AWSSDK/例子,然後打開 SNSample 場景。

  2. 在 中IARCHY窗格中,選擇「信號採樣」。

  3. 在 中Inspector窗格中指定您的 Cognito 份池 ID。

  4. 請注意,有一個文本框iOS 平台應用程序 ARN,稍後將生成該信息。

  5. 選擇File (檔案)/建置設定,在建置設定對話框中,單擊添加當前按鈕下方組態建置中的場景列表框將當前場景添加到構建中。

  6. UNDER平台選取iOS並按一下播放器設定...按鈕,在Inspector 窗格,單擊 iPhone 圖標,然後向下滾動到識別部分並指定Bundle Identifier (套件組合識別碼)

iOS 設定

執行下列步驟來設定示例,以配置 iOS 特定設定:

  1. 在 Web 瀏覽器中,前往蘋果開發人員會員中心中,按一下證書、標識符和配置文件

  2. 按一下識別碼iOS 應用程式下,按一下位於 Web 頁面右上角的加號按鈕,以新增 iOS App ID,然後輸入 App ID 描述。

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

  4. 向下捲動到App Services部分,然後選擇推送通知

  5. 按一下Continue按鈕。

  6. 按一下提交按鈕。

  7. 按一下完成按鈕。

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

  9. 向下捲動到推送通知部分。

  10. 按一下建立憑證按鈕SSL 憑證

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

  12. 返回證書、標識符和配置文件網頁上,按一下All (全部)設定檔

  13. 按一下位於右上角的加號按鈕,以添加新的預配概要文件。

  14. 選擇iOS 應用程式開發並按一下Continue按鈕。

  15. 選擇您的應用程序 ID,然後單擊Continue按鈕。

  16. 選擇您的開發者證書,然後單擊Continue按鈕。

  17. 選擇您的設備,然後單擊Continue按鈕。

  18. 輸入配置文件名稱,然後單擊Generate按鈕。

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

新增後,您可能需要在 Xcode 中刷新 Project 中。Xcode 中:

  1. 選取Xcode/偏好設定選單項目。

  2. 選取帳戶選項卡上,選擇您的 Apple ID,然後單擊查看詳細資訊

  3. 單擊對話框左下角的刷新按鈕可刷新您的配置配置文件,並確保顯示新配置文件。

SNS 配置

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

  2. 在 Web 瀏覽器中,前往SNS 控制台並按一下應用程式在畫面左側。

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

  4. 輸入應用程式名稱

  5. 選擇蘋果推送通知服務沙箱 (APNS_SANDBOX)為了推送通知平台

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

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

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

  9. 選擇剛剛創建的平台應用程序並複製應用程序 ARN。

  10. 在 Unity 編輯器中返回到您的項目,選擇故障採樣中的IARCHY窗格中的Inspector窗格中,然後將平台應用程式 ARN 貼入標記為iOS 平台應用程序 ARN

  11. 選擇File (檔案)/建置設定並按一下建置按鈕,這將創建一個 Xcode 項目。

使用 Xcode

  1. 打開 Xcode 項目,然後在項目導航器中選擇項目。

  2. 驗證是否正確設置了捆綁標識符

  3. 驗證您的 Apple 開發者帳户是否在團隊— 預配置文件需要這樣做,才會生效。

  4. 構建項目並在您的設備上運行它。

  5. 按一下註冊通知中,按一下OK (OK)以允許通知,應用程序將顯示您的設備令牌

在 中SNS 控制台中,按一下應用程式,選擇您的平台應用程序,然後單擊建立平台端點,然後輸入應用程序顯示的設備令牌。

此時,您的應用程序、APNS 和 NSN 已完全配置。您可以選擇平台應用程序,選擇終端節點,然後單擊發佈至端點向您的設備發送推送通知。

統一示例 (iOS)

該樣本創建了 CognitoAWSCredentials實例生成允許應用程序調用 AWS 服務的臨時有限範圍證書。它還會建立一個AmazonSimpleNotificationService客户端與 SNS 進行通信。該應用程序顯示兩個標記為註冊通知取消註冊

註冊獲取通知按鈕時,RegisterDevice()方法被調用。RegisterDevice()呼叫UnityEngine.iOS.NotificationServices.RegisterForNotifications,它指定將使用哪些通知類型(警報、聲音或徽章)。它還對 APNS 進行異步調用以獲取設備令牌。由於沒有定義回調,CheckForDeviceToken被重複調用(最多 10 次)來檢查設備令牌。

檢索令牌時AmazonSimpleNotificationServiceClient.CreatePlatformEndpointAsync()為 SNS 平台應用程序創建終端節點。

現在,該示例配置為接收推式通知。您可以瀏覽到SNS 控制台中,按一下應用程式,選擇平台應用程式,選擇終端節點,然後單擊發佈至端點。選擇要使用的終端節點,然後單擊發佈至端點。在文字方塊中輸入文字消息,然後單擊發佈訊息發佈訊息。

配置適用於安卓系統的統一示例應用

開啟 Unity (Unity) 編輯器並建立新專案。導入適用於 Unity 的 AWS 開發工具包包,方法是選擇資產/導入套件/自訂套件並選取aws-unity-sdk-SN-2.0.0.1. 單元包裝。確保導入套件對話框,然後單擊匯入

Unity 配置

執行下列步驟來設定 Unity 專案:

  1. 在 中專案窗格中,前往資產/AWSSDK/例子,然後打開 SNSample 場景。

  2. 在 中IARCHY窗格中,選擇「信號採樣」。

  3. 在 中Inspector窗格中指定您的 Cognito 份池 ID。

  4. 請注意,有一個文本框安卓平台應用程序 ARNGoogle 主控台專案 ID,稍後將生成該信息。

  5. 選擇File (檔案)/建置設定,在建置設定對話框中,單擊添加當前按鈕下方組態建置中的場景列表框將當前場景添加到構建中。

  6. UNDER平台選取安卓,然後按一下播放器設定...按鈕,在Inspector 窗格,單擊 Android 圖標,然後向下滾動到識別部分並指定Bundle Identifier (套件組合識別碼)

  7. 複製android-support-v4.jar 和google-play-services.jar 放入資產/外掛程式/安卓目錄中專案窗格。

如需其位於何處的詳細資訊android-support-v4.jar,請參閲Android Support 庫設定。如需如何找到google-play-services.jar,請參閲適用於安卓設置的谷歌 API

Android 設定

首先添加一個新的谷歌 API 項目:

  1. 在 Web 瀏覽器中,前往Google 開發者控制台中,按一下建立專案

  2. 在 中新建工程框中,輸入項目名稱,記下項目編號(稍後需要),然後單擊建立

接下來,啟用 Google Cloud Message (GCM) 服務,請執行以下步驟:

  1. 在 Google 開發者控制台中,您的新項目應該已被選中,如果沒有,請在頁面頂部的下拉菜單中選擇它。

  2. 選擇API & 授權在頁面左側側欄中輸入。

  3. 在搜尋方塊中,輸入 Google Cloud Message (Google Cloud Message),然後按一下位於適用於安卓的谷歌雲消息鏈接。

  4. 按一下啟用 API

最後獲取 API 密鑰:

  1. 在谷歌開發人員控制台中,選擇API & 授權 >登入資料

  2. UNDER公用 API 訪問中,按一下建立新的密鑰

  3. 在 中建立新的金鑰對話框中,單擊服務器密鑰

  4. 在生成的對話框中,單擊建立並複製顯示的 API 密鑰。

稍後您將使用 API 密鑰執行身份驗證。

SNS 配置

  1. 在 Web 瀏覽器中,前往SNS 控制台並按一下應用程式在畫面左側。

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

  3. 輸入應用程式名稱

  4. 選擇Google Cloud Message (GCM)為了推送通知平台

  5. 將 API 密鑰貼入標記為API 金鑰

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

  7. 選擇剛剛創建的平台應用程序並複製應用程序 ARN。

  8. 在 Unity 編輯器中返回到您的項目,選擇故障採樣中的IARCHY窗格中的Inspector窗格中,然後將平台應用程式 ARN 貼入標記為安卓平台應用程序 ARN將您的專案編號放入標記為Google 主控台專案 ID

  9. Connect 您的 Android 裝置至電腦,選擇File (檔案)/建置設定,然後按一下建置並執行。

統一示例 (安卓系統)

該樣本創建了 CognitoAWSCredentials實例生成允許應用程序調用 AWS 服務的臨時有限範圍證書。它還會建立一個AmazonSimpleNotificationService客户端與 SNS 進行通信。

該應用程序顯示兩個標記為註冊通知取消註冊。當註冊獲取通知按鈕時,RegisterDevice()方法被調用。RegisterDevice()呼叫GCM.Register,它將應用程序註冊到 GCM。GCM 是在示例代碼中定義的類。它進行異步調用以向 GCM 註冊應用程序。

當回調被調用AmazonSimpleNotificationServiceClient.CreatePlatformEndpointAsync來創建接收 SNS 消息的平台終端節點。

現在,該示例配置為接收推式通知。您可以瀏覽到SNS 控制台中,按一下應用程式,選擇平台應用程式,選擇終端節點,然後單擊發佈至端點。選擇要使用的終端節點,然後單擊發佈至端點。在文字方塊中輸入文字消息,然後單擊發佈訊息發佈訊息。