遠程推播通知
什麼是遠程推播通知
顧名思義,就是從遠程伺服器推送給用戶端的通知(需要連網)遠程推送服務,又稱為APNs(Apple Push Notification Services)
為什麼需要遠程推播通知
傳統擷取資料的局限性 只要使用者關閉了app,就無法跟app的伺服器溝通,無法從伺服器上獲得最新的資料內容
遠程推播通知可以解決以上問題 不管使用者開啟還是關閉app,只要連網了,都能接收到伺服器推送的遠程通知
遠程推播通知使用須知
- 所有的蘋果裝置,在連網狀態下,都會與蘋果的伺服器建立長串連 什麼是長串連 只要連網了,就一直建立串連
- 長串連的作用 時間校準 系統升級 尋找我的iPhone .. ...
- 長串連的好處 資料轉送速度快 資料保持最新狀態
推送原理
Provider就是我們公司的伺服器,經過蘋果的APNs伺服器找到我們的裝置,給我們裝置上的用戶端應用推送訊息。那APNs伺服器是如何找到我們的裝置和裝置上的應用呢,答案就是DeviceToken,DeviceToken需要配置推送認證才可以獲得,推送認證需要知道我們的APP ID(應用的BundleID,應用唯一標識)和UDID(裝置唯一標識),還有自己伺服器的UDID,我們先來打一個推送認證,登入開發人員中心,點擊認證模組
點擊iOS Apps的認證
進入這樣的介面
點擊App IDs,然後點右上方的加號
箭頭所指為應用ID描述,我們假設寫了一個很牛逼的應用,ExcitedApp,接下來我們填入App ID,注意這裡的App ID是固定的,不能有星號
接下來我們添加App所需要的服務,然後點擊Continue
一直點擊下一步,完成,在App IDs 列表裡面找到我們的ExcitedApp,我們看到
發現Push服務是黃色警告,這時點擊Edit,找到推送模組,我們需要配置推送認證了,點擊紅色箭頭所指的位置
我們需要一個CSR檔案,CSR是一個簽章要求檔案,意思就是讓我們的MAC具有調試推送的許可權,點擊繼續
點擊了繼續我們看到
然後我們開啟Mac上的鑰匙串,從憑證授權單位請求認證
前兩個隨便寫,最後選擇存到磁碟
完成之後,接下來我們就可以添加CSR檔案了
添加完,選擇產生
認證配好了,下載下來
配好了!
順帶著我們把發布的認證也給配了,步驟都一樣
開啟我們剛剛下載的認證,添加到鑰匙串中
終於能開始整我們的項目了,快哭了都
不要忘記修改bundle id 這裡還要搞一個真機調試的認證才可以
真機調試的東西這裡不累述,搞了這麼多東西,我們終於可以拿到DeviceToken了
在AppDelegate.m中註冊推送
- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions { UIUserNotificationType types = UIUserNotificationTypeBadge | UIUserNotificationTypeSound | UIUserNotificationTypeAlert ; UIUserNotificationSettings * setting = [UIUserNotificationSettings settingsForTypes:types categories:nil]; [[UIApplication sharedApplication] registerUserNotificationSettings:setting]; return YES; } -(void)application:(UIApplication *)application didRegisterForRemoteNotificationsWithDeviceToken:(NSData *)deviceToken { NSLog(@"%@",deviceToken); }
DeviceToken處理流程
接下來我們用PushMebaby來測試一下我們的推送:https://github.com/stefanhafeneger/PushMeBaby/
將我們的推送認證添加到項目目錄
接下來手機上就可以收到推送了。
本文已被整理到了《iOS推送教程》,歡迎大家學習閱讀。
以上就是本文的全部內容,希望對大家的學習有所協助,也希望大家多多支援雲棲社區。