IOS10 遠(yuǎn)程推送適配詳細(xì)介紹
IOS10 遠(yuǎn)程推送適配
iOS10推送新增了UserNotifications Framework,使用起來(lái)其實(shí)很簡(jiǎn)單。
建議看看極光推送的Demo,里面寫(xiě)的更詳細(xì)。
只是在iOS10以上系統(tǒng)上點(diǎn)擊通知欄,回調(diào)方法不再走原來(lái)的這兩個(gè)方法
- (void)application:(UIApplication *)application
didReceiveRemoteNotification:(NSDictionary *)userInfo {}
- (void)application:(UIApplication *)application
didReceiveRemoteNotification:(NSDictionary *)userInfo
fetchCompletionHandler:(void (^)(UIBackgroundFetchResult))completionHandler {}
而是在前臺(tái)的時(shí)候回調(diào)
- (void)userNotificationCenter:(UNUserNotificationCenter *)center willPresentNotification:(UNNotification *)notification withCompletionHandler:(void (^) (UNNotificationPresentationOptions))completionHandler
從后臺(tái)進(jìn)入的時(shí)候回調(diào)
- (void)userNotificationCenter:(UNUserNotificationCenter *)center didReceiveNotificationResponse:(UNNotificationResponse *)response withCompletionHandler:(void (^)())completionHandler
直接說(shuō)怎么用吧:
1,導(dǎo)入頭文件
#ifdef NSFoundationVersionNumber_iOS_9_x_Max #import <UserNotifications/UserNotifications.h> #endif
2,注冊(cè)通知
- (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,對(duì)于本地通知沒(méi)有什么變化依然會(huì)回調(diào)
-(void)application:(UIApplication *)application didReceiveLocalNotification:(UILocalNotification *)notification
感謝閱讀,希望能幫助到大家,謝謝大家對(duì)本站的支持!
- iOS10 適配遠(yuǎn)程推送功能實(shí)現(xiàn)代碼
- 更新了Xcode8 及 iOS10遇到的問(wèn)題小結(jié)
- iOS10全新推送功能實(shí)現(xiàn)代碼
- Xcode8以及iOS10適配等常見(jiàn)問(wèn)題匯總(整理篇)
- iOS10開(kāi)發(fā)和Xcode 8新特性及常見(jiàn)問(wèn)題解析
- iOS10推送之基礎(chǔ)知識(shí)(必看篇)
- IOS10 解決權(quán)限崩潰問(wèn)題詳解
- iOS10適配之權(quán)限Crash問(wèn)題的完美解決方案
- 110.iOS10新特性適配教程XCode8新特性解析
- 解析iOS10中的極光推送消息的適配
- Xcode8、iOS10升級(jí)問(wèn)題記錄
- iOS10 推送最新特性研究
相關(guān)文章
實(shí)例講解iOS應(yīng)用開(kāi)發(fā)中UIPickerView滾動(dòng)選擇欄的用法
這篇文章主要介紹了iOS應(yīng)用開(kāi)發(fā)中UIPickerView滾動(dòng)選擇欄的用法,示例代碼基于傳統(tǒng)的Objective-C,需要的朋友可以參考下2016-04-04
iOS?GCD之dispatch_group_enter和dispatch_group_leave使用
這篇文章主要為大家介紹了iOS?GCD之dispatch_group_enter和dispatch_group_leave使用詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪2023-03-03
iOS實(shí)現(xiàn)后臺(tái)長(zhǎng)時(shí)間運(yùn)行
這篇文章主要為大家詳細(xì)介紹了iOS實(shí)現(xiàn)后臺(tái)長(zhǎng)時(shí)間運(yùn)行,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2018-10-10
IOS實(shí)現(xiàn)驗(yàn)證碼倒計(jì)時(shí)功能(二)
這篇文章主要介紹了IOS實(shí)現(xiàn)驗(yàn)證碼倒計(jì)時(shí)功能,點(diǎn)擊獲取驗(yàn)證碼,進(jìn)入時(shí)間倒計(jì)時(shí),感興趣的小伙伴們可以參考一下2016-04-04
詳解iOS14 Widget 開(kāi)發(fā)相關(guān)及易報(bào)錯(cuò)地方處理
這篇文章主要介紹了詳解iOS14 Widget 開(kāi)發(fā)相關(guān)及易報(bào)錯(cuò)地方處理,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧2020-10-10
iOS字體抖動(dòng)動(dòng)畫(huà)的實(shí)現(xiàn)代碼
這篇文章主要介紹了iOS字體抖動(dòng)動(dòng)畫(huà)的實(shí)現(xiàn)代碼,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2017-03-03
iOS App開(kāi)發(fā)中的UIPageControl分頁(yè)控件使用小結(jié)
UIPageControl分頁(yè)控件的例子簡(jiǎn)單來(lái)說(shuō)即是我們平時(shí)翻動(dòng)多個(gè)桌面頁(yè)時(shí)及底部帶有的圓點(diǎn)頁(yè)碼標(biāo)注,這里我們來(lái)看一下iOS App開(kāi)發(fā)中的UIPageControl分頁(yè)控件使用小結(jié),需要的朋友可以參考下2016-06-06
iOS動(dòng)畫(huà)特效之立方體翻轉(zhuǎn)
今天起為大家?guī)?lái)iOS動(dòng)畫(huà)特效合集之立方體翻轉(zhuǎn),APP如美女,動(dòng)畫(huà)如衣裳,趕緊為她披上漂亮的衣裝吧!2016-08-08
iOS利用MJRefresh實(shí)現(xiàn)自定義刷新動(dòng)畫(huà)效果
本文主要介紹iOS 利用MJRefresh實(shí)現(xiàn)自定義動(dòng)畫(huà)的上拉刷新下拉加載效果,要想實(shí)現(xiàn)此功能,首先得有一套load的圖片數(shù)組。接下來(lái)通過(guò)本文給大家詳解介紹實(shí)現(xiàn)過(guò)程2017-02-02

