因?yàn)闃I(yè)務(wù)需求考慮使用APNs 實(shí)現(xiàn)遠(yuǎn)程推送
(1) 程序內(nèi)注冊(cè)通知將token 發(fā)送給服務(wù)器(重點(diǎn)在token的處理)
(2)導(dǎo)出p12 文件提供給服務(wù)器
// 測(cè)試證書
屏幕快照 2017-01-18 下午4.56.03.png
// 生產(chǎn)證書
屏幕快照 2017-01-18 下午4.55.49.png
服務(wù)器端使用c#實(shí)現(xiàn):代碼參考 https://github.com/Redth/PushSharp/
注冊(cè)遠(yuǎn)程通知
-(void)registForRemoteNotification{
UIUserNotificationType types = (UIUserNotificationTypeBadge|UIUserNotificationTypeSound|UIUserNotificationTypeAlert);
UIUserNotificationSettings *setting = [UIUserNotificationSettings settingsForTypes:types categories:nil];
[[UIApplication sharedApplication] registerUserNotificationSettings:setting];
}
實(shí)現(xiàn)代理方法
// 注冊(cè)成功
//(剛開始對(duì)對(duì)token 的處理還有點(diǎn)小糾結(jié) 因?yàn)樽?cè)成功后返回的類型為NSData類型的數(shù)據(jù) 而服務(wù)器端需要的是字符串 ,不知道該對(duì)Token 做什么處理才會(huì)被蘋果遠(yuǎn)程推送服務(wù)器識(shí)別 以下處理方法親測(cè)有效)
- (void)application:(UIApplication *)application
didRegisterForRemoteNotificationsWithDeviceToken:(NSData *)deviceToken {
NSString *token =
[[[[deviceToken description] stringByReplacingOccurrencesOfString:@"<"
withString:@""]
stringByReplacingOccurrencesOfString:@">"
withString:@""]
stringByReplacingOccurrencesOfString:@" "
withString:@""];
// 將token 發(fā)送給服務(wù)器即可
}
// 注冊(cè)失敗回調(diào)方法
- (void)application:(UIApplication *)application didFailToRegisterForRemoteNotificationsWithError:(NSError *)error {
NSLog(@"did Fail To Register For Remote Notifications With Error: %@", error);
}