IOS10 遠(yuǎn)程推送適配詳細(xì)介紹
IOS10 遠(yuǎn)程推送適配
iOS10推送新增了UserNotifications Framework,使用起來其實很簡單。
建議看看極光推送的Demo,里面寫的更詳細(xì)。
只是在iOS10以上系統(tǒng)上點擊通知欄,回調(diào)方法不再走原來的這兩個方法
- (void)application:(UIApplication *)application didReceiveRemoteNotification:(NSDictionary *)userInfo {} - (void)application:(UIApplication *)application didReceiveRemoteNotification:(NSDictionary *)userInfo fetchCompletionHandler:(void (^)(UIBackgroundFetchResult))completionHandler {}
而是在前臺的時候回調(diào)
- (void)userNotificationCenter:(UNUserNotificationCenter *)center willPresentNotification:(UNNotification *)notification withCompletionHandler:(void (^) (UNNotificationPresentationOptions))completionHandler
從后臺進入的時候回調(diào)
- (void)userNotificationCenter:(UNUserNotificationCenter *)center didReceiveNotificationResponse:(UNNotificationResponse *)response withCompletionHandler:(void (^)())completionHandler
直接說怎么用吧:
1,導(dǎo)入頭文件
#ifdef NSFoundationVersionNumber_iOS_9_x_Max #import <UserNotifications/UserNotifications.h> #endif
2,注冊通知
- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions 方法中
if (iOS10) { UNUserNotificationCenter *center = [UNUserNotificationCenter currentNotificationCenter]; center.delegate = self; [center requestAuthorizationWithOptions:(UNAuthorizationOptionBadge | UNAuthorizationOptionSound | UNAuthorizationOptionAlert) completionHandler:^(BOOL granted, NSError * _Nullable error) { if (!error) { NSLog(@"succeeded!"); } }]; } else if (iOS8_9){//iOS8-iOS9 UIUserNotificationSettings *settings = [UIUserNotificationSettings settingsForTypes:(UIUserNotificationTypeBadge | UIUserNotificationTypeAlert | UIUserNotificationTypeSound) categories:nil]; [application registerUserNotificationSettings:settings]; [application registerForRemoteNotifications]; } else {//iOS8以下 [application registerForRemoteNotificationTypes: UIRemoteNotificationTypeBadge | UIRemoteNotificationTypeAlert | UIRemoteNotificationTypeSound]; }
3,回調(diào)方法中,獲取通知數(shù)據(jù)
- (void)userNotificationCenter:(UNUserNotificationCenter *)center didReceiveNotificationResponse:(UNNotificationResponse *)response withCompletionHandler:(void (^)())completionHandler { NSDictionary *userInfo = response.notification.request.content.userInfo; //消息處理 if([request.trigger isKindOfClass:[UNPushNotificationTrigger class]]) { //判斷為遠(yuǎn)程推送 }else { // 判斷為本地通知 } }
4,對于本地通知沒有什么變化依然會回調(diào)
-(void)application:(UIApplication *)application didReceiveLocalNotification:(UILocalNotification *)notification
感謝閱讀,希望能幫助到大家,謝謝大家對本站的支持!
相關(guān)文章
實例講解iOS應(yīng)用開發(fā)中UIPickerView滾動選擇欄的用法
這篇文章主要介紹了iOS應(yīng)用開發(fā)中UIPickerView滾動選擇欄的用法,示例代碼基于傳統(tǒng)的Objective-C,需要的朋友可以參考下2016-04-04iOS?GCD之dispatch_group_enter和dispatch_group_leave使用
這篇文章主要為大家介紹了iOS?GCD之dispatch_group_enter和dispatch_group_leave使用詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進步,早日升職加薪2023-03-03詳解iOS14 Widget 開發(fā)相關(guān)及易報錯地方處理
這篇文章主要介紹了詳解iOS14 Widget 開發(fā)相關(guān)及易報錯地方處理,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2020-10-10iOS App開發(fā)中的UIPageControl分頁控件使用小結(jié)
UIPageControl分頁控件的例子簡單來說即是我們平時翻動多個桌面頁時及底部帶有的圓點頁碼標(biāo)注,這里我們來看一下iOS App開發(fā)中的UIPageControl分頁控件使用小結(jié),需要的朋友可以參考下2016-06-06iOS利用MJRefresh實現(xiàn)自定義刷新動畫效果
本文主要介紹iOS 利用MJRefresh實現(xiàn)自定義動畫的上拉刷新下拉加載效果,要想實現(xiàn)此功能,首先得有一套load的圖片數(shù)組。接下來通過本文給大家詳解介紹實現(xiàn)過程2017-02-02