iOS開發(fā)基礎(chǔ):桌面角標的顯示

角標.png

如果iOS應(yīng)用需要顯示角標(桌面應(yīng)用圖標上的小紅點)桥嗤,關(guān)鍵代碼就一行(片段1):

[UIApplication sharedApplication].applicationIconBadgeNumber = 3;

但是如果你只調(diào)用這句监右,看不到任何效果,這是為什么呢丘跌?
這是因為 iOS 8 以后,需要注冊用戶通知唁桩,以獲得用戶的授權(quán)闭树,這時用戶會得到以下通知:


授權(quán)提示

下面是注冊通知的代碼(片段2):

float version = [[[UIDevice currentDevice] systemVersion] floatValue];
    
if (version >= 8.0) {
      UIUserNotificationSettings *settings = [UIUserNotificationSettings settingsForTypes:UIUserNotificationTypeBadge categories:nil];
      [[UIApplication sharedApplication] registerUserNotificationSettings:settings];
      [application registerForRemoteNotifications];
}

由此可見,如果用戶沒有授權(quán)之前荒澡,就設(shè)置applicationIconBadgeNumber蔼啦,就得不到任何效果,所以注冊和設(shè)置的時機就顯得很重要仰猖,一般來說捏肢,片段2放入AppDelegate 的didFinishLaunchingWithOptions方法中,這樣在程序第一次安裝后饥侵,就會提示用戶授權(quán)鸵赫;片段1放入applicationDidEnterBackground 方法中,這樣躏升,程序運行期間的變更會體現(xiàn)在角標上辩棒,當然如果角標體現(xiàn)的是網(wǎng)絡(luò)通知等,請根據(jù)實際情況設(shè)置膨疏。
最后一睁,如果用戶點擊了“不允許”,再次啟動APP佃却,授權(quán)對話框和角標設(shè)置都不會再次顯示者吁,這時可以引導(dǎo)用戶前往“設(shè)置”打開“通知”開關(guān):

設(shè)置通知開關(guān)

這時,我們可以通過代理判斷是否被授權(quán):

- (void)application:(UIApplication *)application didRegisterUserNotificationSettings:(UIUserNotificationSettings *)notificationSettings {
    if (!(notificationSettings.types & UIUserNotificationTypeBadge)) { //沒有設(shè)置角標
        NSLog(@"授權(quán)失敗饲帅,引導(dǎo)用戶前往設(shè)置");
    }
}

在iOS10 后复凳,蘋果引入了一個管理通知的框架UserNotifications.framework,所以iOS10 以上可以這樣判斷:

#import <UserNotifications/UserNotifications.h>
...
UNUserNotificationCenter *center = [UNUserNotificationCenter currentNotificationCenter];
[center requestAuthorizationWithOptions:(UNAuthorizationOptionBadge | UNAuthorizationOptionSound | UNAuthorizationOptionAlert) completionHandler:^(BOOL granted, NSError * _Nullable error) {
    if (granted) {
        NSLog(@"授權(quán)成功");
    } else {
        NSLog(@"授權(quán)失敗灶泵,引導(dǎo)用戶前往設(shè)置");
    }
}];

小結(jié)

由于iOS8以后有通知授權(quán)的存在育八,我們需要選擇設(shè)置角標數(shù)值的時機,并在用戶拒絕(往往是誤點)后赦邻,引導(dǎo)用戶手動開啟通知髓棋;為了解決歷代通知注冊的混亂局面,iOS10引入了統(tǒng)一的通知框架惶洲,但可能進一步加深了這種混亂按声,建議先使用iOS8的方式判斷,并為iOS10做好準備湃鹊,有什么心得儒喊,歡迎來評論區(qū)一吐為快。

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末币呵,一起剝皮案震驚了整個濱河市怀愧,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌余赢,老刑警劉巖芯义,帶你破解...
    沈念sama閱讀 219,110評論 6 508
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場離奇詭異妻柒,居然都是意外死亡扛拨,警方通過查閱死者的電腦和手機,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 93,443評論 3 395
  • 文/潘曉璐 我一進店門举塔,熙熙樓的掌柜王于貴愁眉苦臉地迎上來绑警,“玉大人求泰,你說我怎么就攤上這事〖坪校” “怎么了渴频?”我有些...
    開封第一講書人閱讀 165,474評論 0 356
  • 文/不壞的土叔 我叫張陵,是天一觀的道長北启。 經(jīng)常有香客問我卜朗,道長,這世上最難降的妖魔是什么咕村? 我笑而不...
    開封第一講書人閱讀 58,881評論 1 295
  • 正文 為了忘掉前任场钉,我火速辦了婚禮,結(jié)果婚禮上懈涛,老公的妹妹穿的比我還像新娘逛万。我一直安慰自己,他們只是感情好肩钠,可當我...
    茶點故事閱讀 67,902評論 6 392
  • 文/花漫 我一把揭開白布泣港。 她就那樣靜靜地躺著,像睡著了一般价匠。 火紅的嫁衣襯著肌膚如雪当纱。 梳的紋絲不亂的頭發(fā)上,一...
    開封第一講書人閱讀 51,698評論 1 305
  • 那天踩窖,我揣著相機與錄音坡氯,去河邊找鬼。 笑死洋腮,一個胖子當著我的面吹牛箫柳,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播啥供,決...
    沈念sama閱讀 40,418評論 3 419
  • 文/蒼蘭香墨 我猛地睜開眼悯恍,長吁一口氣:“原來是場噩夢啊……” “哼!你這毒婦竟也來了伙狐?” 一聲冷哼從身側(cè)響起涮毫,我...
    開封第一講書人閱讀 39,332評論 0 276
  • 序言:老撾萬榮一對情侶失蹤,失蹤者是張志新(化名)和其女友劉穎贷屎,沒想到半個月后罢防,有當?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 45,796評論 1 316
  • 正文 獨居荒郊野嶺守林人離奇死亡唉侄,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 37,968評論 3 337
  • 正文 我和宋清朗相戀三年咒吐,在試婚紗的時候發(fā)現(xiàn)自己被綠了。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點故事閱讀 40,110評論 1 351
  • 序言:一個原本活蹦亂跳的男人離奇死亡恬叹,死狀恐怖候生,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情妄呕,我是刑警寧澤陶舞,帶...
    沈念sama閱讀 35,792評論 5 346
  • 正文 年R本政府宣布,位于F島的核電站绪励,受9級特大地震影響,放射性物質(zhì)發(fā)生泄漏唠粥。R本人自食惡果不足惜疏魏,卻給世界環(huán)境...
    茶點故事閱讀 41,455評論 3 331
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望晤愧。 院中可真熱鬧大莫,春花似錦、人聲如沸官份。這莊子的主人今日做“春日...
    開封第一講書人閱讀 32,003評論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽舅巷。三九已至羔味,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間钠右,已是汗流浹背赋元。 一陣腳步聲響...
    開封第一講書人閱讀 33,130評論 1 272
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留飒房,地道東北人搁凸。 一個月前我還...
    沈念sama閱讀 48,348評論 3 373
  • 正文 我出身青樓,卻偏偏與公主長得像狠毯,于是被迫代替她去往敵國和親护糖。 傳聞我的和親對象是個殘疾皇子,可洞房花燭夜當晚...
    茶點故事閱讀 45,047評論 2 355

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

  • Spring Cloud為開發(fā)人員提供了快速構(gòu)建分布式系統(tǒng)中一些常見模式的工具(例如配置管理嚼松,服務(wù)發(fā)現(xiàn)嫡良,斷路器,智...
    卡卡羅2017閱讀 134,662評論 18 139
  • 重述原文I: what:這是一個講述如何將自身的非理性思考模式調(diào)節(jié)為理性思考模式的方法 適用范圍:被人或者事物牽著...
    張彰說閱讀 288評論 3 2
  • 一般我們向cell中添加子視圖惜颇,有兩種方式1皆刺、[cell addSubview:]2、[cell.contentV...
    Happy曉哥閱讀 1,849評論 0 50
  • 錦繡鵬城地下通凌摄, 全仗閃電鐵飛龍羡蛾。 各路朋友滿身載, 往返東南西北中锨亏。
    陳老師_7891閱讀 261評論 0 1
  • 一直以來對抽煙的女性會有些許的反感 總覺得她們放蕩不羈 不愛護自己 或者說是故作瀟灑 現(xiàn)如今自己也想嘗試~ 也許是...
    無嘴的貓閱讀 275評論 0 0