APNS 遠程推送通知 PUSH deviceToken

服務器向客戶端推送消息:
     當應用程序推到後臺,或者根本就沒有運行(咱們的代碼無能爲力)
     若是這種狀況之下,應用程序想和用戶交互(傳統的作法 不可能)
    
推送
APNS:Apple Push Notification Service
deviceToken:標示某一臺iPhone上的某一個應用程序
 
     1.(用戶必須確認須要收到推送消息)註冊遠程通知中心向APNS獲取64位的字符串deviceToken
          註冊遠程通知中心
          [[UIApplication sharedApplicationregisterForRemoteNotificationTypes:(UIRemoteNotificationTypeBadge UIRemoteNotificationTypeAlert UIRemoteNotificationTypeSound)];
          參數:
          UIRemoteNotificationTypeBadge     //應用程序的角標
          UIRemoteNotificationTypeSound     //推送提示音

          UIRemoteNotificationTypeAlert     //提示框內容服務器


     2.APNS返回deviceToken(進入代理方法)
          1)成功獲取deviceToken,系統回調
          - (void)application:(UIApplication *)application didRegisterForRemoteNotificationsWithDeviceToken:(NSData *)deviceToken;
 
          2)獲取deviceToken失敗,系統回調
          - ( void)application:( UIApplication *)application didFailToRegisterForRemoteNotificationsWithError:( NSError *)error;
 
     3.iPhone將deviceToken上傳至服務器(POST)
          例:
          deviceToken: < c389e769 d6ddb7d5 a783a015 ff553d90 5b1e04e2 6fa71ec7 f0aa52ab 4bdcc660>
          1.處理字符串,消除空格 和 <>
          2.獲得 64位字符串, post至服務器
 
     4.服務器將推送的消息+deviceToken+(SSL & privace key(兩個生成一個文件)) 發送到APNS
 
     5.(驗證經過後)APNS將消息發送到iPhone
 
     6.用戶點擊推送通知,系統回調(在此方法裏將角標置零)
     - ( void)application:( UIApplication *)application didReceiveRemoteNotification:( NSDictionary *)userInfo;
     參數:
          userInfo:包含推送的內容+推送的聲音+角標籤
 
          1)設置角標
           @property( nonatomic) NSInteger applicationIconBadgeNumber;
 
 
推送須要證書:該證書是2份  一份給客戶端  一份給服務器(客戶端的服務器) 服務器和客戶端推送證書必須一致
相關文章
相關標籤/搜索