iOS 推送整理
1、客戶端通過下面程式碼像APNS註冊push,表明push的型別,iOS8之後對註冊推送有了新的API
#if !TARGET_IPHONE_SIMULATOR
if (iOS8) {
UIUserNotificationType notifyType = UIUserNotificationTypeAlert|UIUserNotificationTypeSound|UIUserNotificationTypeBadge;
UIUserNotificationSettings *notifySet = [UIUserNotificationSettings settingsForTypes:notifyType categories:nil];
[[UIApplication sharedApplication]registerForRemoteNotifications];
[[UIApplication sharedApplication]registerUserNotificationSettings:notifySet];
}
else {
UIRemoteNotificationType notifyType = UIRemoteNotificationTypeBadge | UIRemoteNotificationTypeSound | UIRemoteNotificationTypeAlert;
[[UIApplication sharedApplication]registerForRemoteNotificationTypes:notifyType];
}
#endif
2、app註冊後會呼叫application delegate中的代理方法
-(void)application:(UIApplication *)application didRegisterForRemoteNotificationsWithDeviceToken:(NSData *)deviceToken
{ //然後app會把這個deviceToken以及一些其他的資訊發給後臺或者第三方推送平臺,當需要傳送push的時候後臺就會取出要傳送的裝置的deviceToken,組合特定格式的字串,然後將其傳送到APNS,APNS可以根據與之建立連結的後臺所使用證書判斷是那個app請求傳送的推送,繼而把推送傳送到deviceToken的裝置上
[[EaseMob sharedInstance]application:application didReceiveRemoteNotification:deviceToken];
[_modelMessage getuiReceiveRemoteNotification:deviceToken];
}
- (void)application:(UIApplication *)application didFailToRegisterForRemoteNotificationsWithError:(NSError *)error {
[MessageModel application:application didFailToRegisterForRemoteNotificationsWithError:error];
[[EaseMob sharedInstance] application:application didFailToRegisterForRemoteNotificationsWithError:error];
}
3、對於APNS來說,device Token是裝置的標示符,與裝置的唯一標示符不同,處於安全與隱私的原因,當裝置被擦除的時候,Token值必須變化。
4、同一臺裝置在development 和 distribution情況下,收到的device Token 是不同的,而token是與app無關的。
5、device Token的生成:每臺正常的iPhone有一個唯一的裝置證書和祕鑰,通過這兩者獲得的,如果經過某種手段使得裝置上證書是一樣的,那麼就有很大的概率使不同裝置具有相同的device Token值,就會出現彼此間puch串發的現象6、iOS5之後uniqueIdentifier會逐步被廢除,取而代之使用裝置的Mac地址MD5計算後的結果作為作為裝置的唯一標識,這個對推送不影響
相關文章
- iOS推送之本地推送iOS
- iOS推送之遠端推送iOS
- iOS 本地推送iOS
- ios中推送iOS
- iOS 推送通知及推送擴充套件iOS套件
- IOS 蘋果官方推送iOS蘋果
- iOS推送機制iOS
- iOS推送——本地推送與遠端推送詳解(一圖看懂)iOS
- iOS 推送(蘋果原生態)iOS蘋果
- iOS本地通知(推送)iOS
- IOS 推送訊息 php做推送服務端iOSPHP服務端
- IOS原生接入友盟推送iOS
- iOS極光推送封裝iOS封裝
- IOS 訊息推送處理iOS
- iOS 10 的推送 User Notifications FrameworkiOSFramework
- iOS開發訊息推送原理iOS
- iOS10 推送必看 UNNotificationContentExtensioniOS
- iOS10推送通知適配iOS
- iOS開發之遠端推送iOS
- iOS8本地推送iOS
- ios推送:本地通知UILocalNotificationiOSUI
- iOS 面試題整理(一)iOS面試題
- 玩轉 iOS 10 推送 —— UserNotifications Framework(下)iOSFramework
- 玩轉 iOS 10 推送 —— UserNotifications Framework(上)iOSFramework
- iOS —— 極光推送和極光IMiOS
- iOS推送系列之Push的工作原理iOS
- 玩轉 iOS 10 推送 —— UserNotifications Framework(中)iOSFramework
- iOS12中推送通知新特性iOS
- ios-10 推送中注意的點iOS
- iOS 極光推送整合與開發iOS
- iOS 極光推送遇到的問題iOS
- iOS多執行緒整理iOS執行緒
- iOS view如何重新整理iOSView
- iOS面試題·自整理·TwoiOS面試題
- iOS 學習資料整理iOS
- 重新整理顯示卡BIOSiOS
- 極光推送申請iOS推送證書p12及配置教程iOS
- 極光推送申請iOS推送證書p12及配置流程iOS