AWS 移動推送到iOS設備,Amazon Pinpoint

前言

第一次對接aws,遇到的坑是真多。如今記錄一下。本文主要用到的是【Amazon Pinpoint】推送。html

開發人員的指南:https://docs.aws.amazon.com/zh_cn/pinpoint/latest/developerguide/welcome.htmlnode

Amazon的SDK地址:https://github.com/aws/aws-sdk-iosios

實踐步驟,不要亂

第一步:拿到推送證書

必定要按照5個步驟一步一步來,拿到的證書纔是正確的。git

第二步:建項目將 iOS 應用程序添加到 Amazon Pinpoint

將 iOS 應用程序添加到 Amazon Pinpointgithub

咱們建立完應用以後,就能夠在控制檯上,拿到測試的Demo, 能夠本身運行Demo,測試通知功能。json

拿Demo的步驟:swift

一、登陸 AWS 管理控制檯,在 https://console.aws.amazon.com/mobilehub 打開 Mobile Hub 控制檯。xcode

若是尚未建立iOS應用程序,則跳到第4步【建立iOS應用程序】。若是已經建立了,跳到第3步建立工程
app

二、在全部的項目中,選擇要測試的項目,https://console.aws.amazon.com/mobilehub/homeide

選中本身的Projects , 點擊進入,點擊iOS 的 【integrate】,其中【download cloud config】是本身的配置文件,集成到本身的APP裏面須要用的,點擊右上角的【Resources】下載本身的測試Demo.

    

三、若是上面的操做都找不到,那你就須要選建立一個工程。步驟https://docs.aws.amazon.com/zh_cn/pinpoint/latest/developerguide/getting-started-ios-mobilehub.html

第三步:測試推送

拿到demo以後,咱們發現,程序運行不起來的。在demo中,有一個【podfile】文件,須要【pod install】更新一下,接着打開【MySampleApp.xcworkspace】 這個工程。

以後,就能夠 使用 Amazon Pinpoint 測試示例應用程序 經過控制檯來測試通知了。

另外須要注意,測試通知,必定要 導出.ipa文件,經過安裝的方式安裝在手機 ,才能接收到通知。若是仍是沒有收到通知,能夠先關閉程序,再從新打開。

第四步:將相關deviceToken和.pem文件證書傳給後臺

測試成功後,咱們發現,經過控制器的測試,是對全部設備一塊兒發的通知。若是想針對單個用戶,實現點對點的通知,咱們須要給後臺傳deviceToken

在【MySampleApp】中,咱們已經拿到deviceToken了,在相關的代碼中:

- (void)application:(UIApplication *)application didRegisterForRemoteNotificationsWithDeviceToken:(NSData *)deviceToken {
    NSLog(@"deviceToken: %@", deviceToken);
    [_pinpoint.notificationManager interceptDidRegisterForRemoteNotificationsWithDeviceToken:deviceToken];
}

拿到的deviceToken是相似下面這一串:

Device Token = <examp1e 29z6j5c4 df46f809 505189c4 c83fjcgf 7f6257e9 8542d2jt 3395kj73>

將設備令牌提交給 Amazon SNS 時,設備令牌中不要包含空格:如

<examp1e29z6j5c4df46f809505189c4c83fjcgf7f6257e98542d2jt3395kj73>

另外,咱們還須要給後臺提供.pem文件。直接第一步拿到的.p12轉成.pem便可

openssl pkcs12 -in myapnsappprivatekey.p12 -out myapnsappprivatekey.pem -nodes -clcerts

 

這一步的操做,能夠參考:APNS 入門 ,感受這裏的文檔有點舊了,左邊寫着是2010年的,使用 Amazon SNS 控制檯將通知發送到設備上的 iOS 應用程序一直嘗試不成功。

 第五步:集成到真實APP項目中

 這一步,能夠參考:將推送通知添加到您的應用程序

這裏的文檔,是有坑的:

一、iOS只有swift語言的說明。解決:經過對照Demo【MySampleApp】能夠獲得解決。

二、pod sdk是一個大坑。文檔上的pod 類庫名寫錯了,一萬個泥馬

解決:實現上,咱們經過看demo,須要pod的類庫是:

  pod 'AWSAuthCore', '~> 2.6.1'
  pod 'AWSPinpoint', '~> 2.6.1'

github上的aws sdk地址,在【前言】上有寫。

最後,變動工程

當咱們集成完項目以後,最終須要變動工程文件,只須要登陸控制檯,把 【download cloud config】下載下來,替換一下工程的【awsconfiguration.json】文件便可。

 

收不到推送

一、檢查APP工程,已經打開了【Push notification】開關

二、APP的包,必定要經過.ipa文件安裝。就是xcode -- product -- archive

三、首次安裝打開的APP,可能收不到推送。須要重啓一遍便可。

 

 祝君對接成功。

相關文章
相關標籤/搜索