iOS開發之遠程推送Push

遠程推送通知

什麼是遠程推送通知

顧名思義,就是從遠程服務器推送客戶端的通知(須要聯網)遠程推送服務,又稱爲APNsApple Push Notification Servicesgit

爲何須要遠程推送通知

  • 傳統獲取數據的侷限性 只要用戶關閉了app,就沒法跟app的服務器溝通,沒法從服務器上得到最新的數據內容
  • 遠程推送通知能夠解決以上問題 無論用戶打開仍是關閉app,只要聯網了,都能接收到服務器推送的遠程通知

遠程推送通知使用須知

  • 全部的蘋果設備,在聯網狀態下,都會與蘋果的服務器創建長鏈接 什麼是長鏈接 只要聯網了,就一直創建鏈接
  • 長鏈接的做用 時間校準 系統升級 查找個人iPhone .. ...
  • 長鏈接的好處 數據傳輸速度快 數據保持最新狀態

推送原理

Provider就是咱們公司的服務器,通過蘋果的APNs服務器找到咱們的設備,給咱們設備上的客戶端應用推送消息。那APNs服務器是如何找到咱們的設備和設備上的應用呢,答案就是DeviceToken,DeviceToken須要配置推送證書才能夠得到,推送證書須要知道咱們的APP ID(應用的BundleID,應用惟一標識)和UDID(設備惟一標識),還有本身服務器的UDID,咱們先來打一個推送證書,登陸開發者中心,點擊證書模塊github

點擊iOS Apps的證書服務器

進入這樣的界面app

點擊App IDs,而後點右上角的加號ide

箭頭所指爲應用ID描述,咱們假設寫了一個很牛逼的應用,ExcitedApp,接下來咱們填入App ID,注意這裏的App ID是固定的,不能有星號測試

接下來咱們添加App所須要的服務,而後點擊Continuespa

一直點擊下一步,完成,在App IDs 列表裏面找到咱們的ExcitedApp,咱們看到3d

發現Push服務是黃色警告,這時點擊Edit,找到推送模塊,咱們須要配置推送證書了,點擊紅色箭頭所指的位置調試

咱們須要一個CSR文件,CSR是一個簽名請求文件,意思就是讓咱們的MAC具備調試推送的權限,點擊繼續code

點擊了繼續咱們看到

而後咱們打開Mac上的鑰匙串,從證書頒發機構請求證書

前兩個隨便寫,最後選擇存到磁盤

完成以後,接下來咱們就能夠添加CSR文件了

添加完,選擇生成

證書配好了,下載下來

 

配好了!

順帶着咱們把發佈的證書也給配了,步驟都同樣

打開咱們剛剛下載的證書,添加到鑰匙串中

終於能開始整咱們的項目了,快哭了都

 

不要忘記修改bundle id 這裏還要搞一個真機調試的證書才能夠

真機調試的東西這裏不累述,搞了這麼多東西,咱們終於能夠拿到DeviceToken了

在AppDelegate.m中註冊推送

1 - (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions {
2     
3     UIUserNotificationType types = UIUserNotificationTypeBadge                                                                                                                      | UIUserNotificationTypeSound | UIUserNotificationTypeAlert ;
4     
5     UIUserNotificationSettings * setting =  [UIUserNotificationSettings settingsForTypes:types categories:nil];
6     [[UIApplication sharedApplication] registerUserNotificationSettings:setting];
7 
8     return YES;
9 }
1 -(void)application:(UIApplication *)application didRegisterForRemoteNotificationsWithDeviceToken:(NSData *)deviceToken
2 {
3     NSLog(@"%@",deviceToken);
4 }

 

DeviceToken處理流程

 

接下來咱們用PushMebaby來測試一下咱們的推送:https://github.com/stefanhafeneger/PushMeBaby/

將咱們的推送證書添加到項目目錄

 

 

接下來手機上就能夠收到推送了

相關文章
相關標籤/搜索