一、iOS推送通知簡介
眾所周知蘋果的推送通知從iOS3開始出現, 每一年都會更新一些新的用法. 譬如iOS7出現的Silent remote notifications(遠程靜默推送), iOS8出現的Category(分類, 也可稱之為快捷回復), iOS9出現的Text Input action(文本框快捷回復).
而在iOS10, 蘋果可謂是大刀闊斧般的, 對遠程通知和本地通知進行了大范圍的更新. iOS10推出了全新的UserNotifications框架(iOS10之前從屬于UIKit框架).
新的推送通知框架, 整合了本地推送和遠程推送的點擊處理方法, 使得以前專門處理推送點擊的方法只能處理靜默推送了.
二、遠程推送通知介紹
1、什么是遠程推送
在聯網的情況下,由遠程服務器推送給客戶端的通知,又稱APNs(Apple Push Notification Services)不管應用是打開還是關閉的情況下,都能接收到服務器推送的遠程通知在聯網狀態下,所有蘋果設備都會與蘋果服務器建立長連接
2、遠程推送的實現原理:
1.打開App時: 發送UDID
和BundleID
給APNs
加密后返回deviceToken
2.獲取Token
后,App調用接口,將用戶身份信息和deviceToken
發給服務器,服務器記錄
3.當推送消息時, 服務器按照用戶身份信息找到存儲的deviceToken
,將消息和deviToken
發送給APNs
4.蘋果的APNs通過deviceToken
, 找到指定設備的指定程序, 并將消息推送給用戶
3、實現遠程推送功能的前提
1.真機
2.調試階段的證書
iOS_development.cer
用于真機調試的證書
aps_development.cer
用于真機推送調試能的證書
xxx.mobileprovision
描述文件,記錄了能夠調試的手機、電腦和程序
3.發布階段的證書
iOS_distribution.cer
用于發布app的證書
aps.cer
用于發布時,讓app有推送功能的證書
xxx.mobileprovision
描述文件,記錄了能夠發布app的電腦
如何配置證書, 不在本教程內, 請讀者自行處理, 或者參考視頻教程
三、iOS10 全新遠程通知教程
一、 注冊遠程推送并獲取DeviceToken
1.創建iOS的項目,并輸入項目名字
2.在AppDelegate
中導入頭文件:
#import <UserNotifications/UserNotifications.h>
3.在application:didFinishLaunchingWithOptions
方法中, 注冊遠程通知
- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions { //請求通知權限, 本地和遠程共用 UNUserNotificationCenter *center = [UNUserNotificationCenter currentNotificationCenter]; [center requestAuthorizationWithOptions:UNAuthorizationOptionBadge | UNAuthorizationOptionSound | UNAuthorizationOptionAlert completionHandler:^(BOOL granted, NSError * _Nullable error) { if (granted) { NSLog(@"請求成功"); } else { NSLog(@"請求失敗"); } }]; //注冊遠程通知 [[UIApplication sharedApplication] registerForRemoteNotifications]; //設置通知的代理 center.delegate = self; return YES; }
新聞熱點
疑難解答