APNS 遠程推播通知 PUSH deviceToken,apnsdevicetoken
伺服器向用戶端推送訊息: 當應用程式推到後台,或者根本就沒有運行(我們的代碼無能為力)
如果這種情況之下,應用程式想和使用者互動(傳統的做法 不可能)
推送APNS:Apple Push Notification ServicedeviceToken:標示某一台iPhone上的某一個應用程式
1.(使用者必須確認需要收到推送訊息)註冊遠程通知中樞向APNS擷取64位的字串deviceToken 註冊遠程通知中樞
[[UIApplication sharedApplication] registerForRemoteNotificationTypes:(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份 一份給用戶端 一份給伺服器(用戶端的伺服器)
伺服器和用戶端推送認證必須一致