iOS10 適配遠(yuǎn)程推送功能實(shí)現(xiàn)代碼

iOS10正式版發(fā)布之后逊谋,網(wǎng)上各種適配XCode8以及iOS10的文章滿天飛。但對于iOS10適配遠(yuǎn)程推送的文章卻不多。iOS10對于推送的修改還是非常大的捡鱼,新增了UserNotifications Framework颗胡,今天就結(jié)合自己的項(xiàng)目毫深,說一說實(shí)際適配的情況。 一毒姨、Capabilities中打開Push Notifications 開關(guān)在XCode7中這里的開關(guān)不打卡哑蔫,推送也是可以正常使用的,但是在XCode8中弧呐,這里的開關(guān)必須要打開闸迷,不然會報(bào)錯:Error Domain=NSCocoaErrorDomain Code=3000 "未找到應(yīng)用程序的“aps-environment”的授權(quán)字符串" UserInfo={NSLocalizedDescription=未找到應(yīng)用程序的“aps-environment”的授權(quán)字符串}打開后會生成entitlements文件,在這里可以設(shè)置APS Environment 二俘枫、推送的注冊首先引入U(xiǎn)serNotifications Framework腥沽,importiOS10修改了注冊推送的方法,這里我們又要對不同版本分別進(jìn)行設(shè)置了崩哩。在application didFinishLaunchingWithOptions方法中修改以前的推送設(shè)置(我只實(shí)現(xiàn)了iOS8以上的設(shè)置)


if (IOS_VERSION >= 10.0) {

UNUserNotificationCenter *center = [UNUserNotificationCenter currentNotificationCenter];

center.delegate = self;

[center requestAuthorizationWithOptions:(UNAuthorizationOptionBadge | UNAuthorizationOptionSound | UNAuthorizationOptionAlert) completionHandler:^(BOOL granted, NSError * _Nullable error) {

if (!error) {

DLog(@"request authorization succeeded!");

}

}];

} else {

if ([application respondsToSelector:@selector(registerUserNotificationSettings:)]) {

//IOS8巡球,創(chuàng)建UIUserNotificationSettings言沐,并設(shè)置消息的顯示類類型

UIUserNotificationSettings *notiSettings = [UIUserNotificationSettings settingsForTypes:(UIUserNotificationTypeBadge | UIUserNotificationTypeAlert | UIUserNotificationTypeSound) categories:nil];

[application registerUserNotificationSettings:notiSettings];

}

}

三、UNUserNotificationCenterDelegate代理實(shí)現(xiàn)

在iOS10中處理推送消息需要實(shí)現(xiàn)UNUserNotificationCenterDelegate的兩個(gè)方法:

復(fù)制代碼 代碼如下:

- (void)userNotificationCenter:(UNUserNotificationCenter *)center willPresentNotification:(UNNotification *)notification withCompletionHandler:(void (^)(UNNotificationPresentationOptions))completionHandler

- (void)userNotificationCenter:(UNUserNotificationCenter *)center didReceiveNotificationResponse:(UNNotificationResponse *)response withCompletionHandler:(void (^)())completionHandler

其中第一個(gè)方法為App在前臺的時(shí)候收到推送執(zhí)行的回調(diào)方法酣栈,第二個(gè)為App在后臺的時(shí)候险胰,點(diǎn)擊推送信息,進(jìn)入App后執(zhí)行的 回調(diào)方法矿筝。

以前處理推送起便,信息是在userInfo參數(shù)中,而新方法中表明上看并沒有這個(gè)參數(shù)窖维,其實(shí)我們一樣可以獲取到userInfo榆综,如下:

/// App在前臺時(shí)候回調(diào)

- (void)userNotificationCenter:(UNUserNotificationCenter *)center willPresentNotification:(UNNotification *)notification withCompletionHandler:(void (^)(UNNotificationPresentationOptions))completionHandler {

NSDictionary *userInfo = notification.request.content.userInfo;

[self handleRemoteNotificationForcegroundWithUserInfo:userInfo];

}

/// App在后臺時(shí)候點(diǎn)擊推送調(diào)用

- (void)userNotificationCenter:(UNUserNotificationCenter *)center didReceiveNotificationResponse:(UNNotificationResponse *)response withCompletionHandler:(void (^)())completionHandler {

NSDictionary *userInfo = response.notification.request.content.userInfo;

[self handleRemoteNotificationBackgroundWithUserInfo:userInfo];

}

完成上面三個(gè)步驟的設(shè)置,對于iOS10的推送設(shè)置基本就適配了铸史。要想自定義Notification Content或者實(shí)現(xiàn)其他NotificationAction請參考其他文章鼻疮。這里只是做了對iOS10的適配。


轉(zhuǎn)載:http://www.jb51.net/article/92917.html

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末琳轿,一起剝皮案震驚了整個(gè)濱河市判沟,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌崭篡,老刑警劉巖挪哄,帶你破解...
    沈念sama閱讀 221,635評論 6 515
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場離奇詭異琉闪,居然都是意外死亡迹炼,警方通過查閱死者的電腦和手機(jī),發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 94,543評論 3 399
  • 文/潘曉璐 我一進(jìn)店門颠毙,熙熙樓的掌柜王于貴愁眉苦臉地迎上來斯入,“玉大人,你說我怎么就攤上這事蛀蜜≡劭郏” “怎么了?”我有些...
    開封第一講書人閱讀 168,083評論 0 360
  • 文/不壞的土叔 我叫張陵涵防,是天一觀的道長。 經(jīng)常有香客問我沪铭,道長壮池,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 59,640評論 1 296
  • 正文 為了忘掉前任杀怠,我火速辦了婚禮椰憋,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘赔退。我一直安慰自己橙依,他們只是感情好证舟,可當(dāng)我...
    茶點(diǎn)故事閱讀 68,640評論 6 397
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著窗骑,像睡著了一般女责。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上创译,一...
    開封第一講書人閱讀 52,262評論 1 308
  • 那天抵知,我揣著相機(jī)與錄音,去河邊找鬼软族。 笑死刷喜,一個(gè)胖子當(dāng)著我的面吹牛,可吹牛的內(nèi)容都是我干的立砸。 我是一名探鬼主播掖疮,決...
    沈念sama閱讀 40,833評論 3 421
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢啊……” “哼颗祝!你這毒婦竟也來了浊闪?” 一聲冷哼從身側(cè)響起,我...
    開封第一講書人閱讀 39,736評論 0 276
  • 序言:老撾萬榮一對情侶失蹤吐葵,失蹤者是張志新(化名)和其女友劉穎规揪,沒想到半個(gè)月后,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體温峭,經(jīng)...
    沈念sama閱讀 46,280評論 1 319
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡猛铅,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 38,369評論 3 340
  • 正文 我和宋清朗相戀三年,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了凤藏。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片奸忽。...
    茶點(diǎn)故事閱讀 40,503評論 1 352
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡,死狀恐怖揖庄,靈堂內(nèi)的尸體忽然破棺而出栗菜,到底是詐尸還是另有隱情,我是刑警寧澤蹄梢,帶...
    沈念sama閱讀 36,185評論 5 350
  • 正文 年R本政府宣布疙筹,位于F島的核電站,受9級特大地震影響禁炒,放射性物質(zhì)發(fā)生泄漏而咆。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,870評論 3 333
  • 文/蒙蒙 一幕袱、第九天 我趴在偏房一處隱蔽的房頂上張望暴备。 院中可真熱鬧,春花似錦们豌、人聲如沸涯捻。這莊子的主人今日做“春日...
    開封第一講書人閱讀 32,340評論 0 24
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽障癌。三九已至凌外,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間混弥,已是汗流浹背趴乡。 一陣腳步聲響...
    開封第一講書人閱讀 33,460評論 1 272
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留蝗拿,地道東北人晾捏。 一個(gè)月前我還...
    沈念sama閱讀 48,909評論 3 376
  • 正文 我出身青樓,卻偏偏與公主長得像哀托,于是被迫代替她去往敵國和親惦辛。 傳聞我的和親對象是個(gè)殘疾皇子,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 45,512評論 2 359

推薦閱讀更多精彩內(nèi)容