iOS之點擊通知欄的通知進入程序的觸發(fā)事件
點擊通知欄的通知進入程序時,會觸發(fā)App Delegate里的方法,分為以下兩種情況:
1、程序未啟動(即底部任務(wù)欄里沒有進程)時:
此種情況下,點擊通知欄的通知進入程序,會觸發(fā)以下方法
- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions
對于launchOptions參數(shù),需要經(jīng)過以下處理:
NSDictionary* pushNotificationKey = [launchOptions objectForKey:UIApplicationLaunchOptionsRemoteNotificationKey];
其中的pushNotificationKey才是從服務(wù)端推送過來的數(shù)據(jù),使用鍵值對方式就可以讀取服務(wù)器傳遞過來的額外參數(shù)了。
應(yīng)用還沒有加載,這時如果點擊通知的顯示按鈕,會調(diào)用didFinishLaunchingWithOptions,不會調(diào)用didReceiveRemoteNotification方法。如果點擊通知的關(guān)閉按鈕,再點擊應(yīng)用,只會調(diào)用didFinishLaunchingWithOptions方法。
2、程序已啟動:
如果程序已經(jīng)啟動,并駐留在內(nèi)存中,不管程序是在前臺(Foreground)還是在后臺(Background),如果點擊通知欄的通知進入程序?qū)⒂|發(fā)以下方法:
- (void)application:(UIApplication *)application didReceiveRemoteNotification:(NSDictionary *)userInfo
其中的userInfo參數(shù),就已經(jīng)是服務(wù)端推送過來的數(shù)據(jù),也是采用鍵值對方式進行讀取。
如果點擊關(guān)閉再點擊應(yīng)用,則上面兩個方法都不會被調(diào)用這時,只能在applicationWillEnterForeground或者applicationDidBecomeActive,根據(jù)發(fā)過來通知中的badge進行判斷是否有通知,然后發(fā)請求獲取數(shù)據(jù)
以上就是本文的全部內(nèi)容,希望本文的內(nèi)容對大家的學(xué)習(xí)或者工作能帶來一定的幫助,同時也希望多多支持腳本之家!
相關(guān)文章
iOS中給自定義tabBar的按鈕添加點擊放大縮小的動畫效果
這篇文章主要介紹了iOS中給自定義tabBar的按鈕添加點擊放大縮小的動畫效果的相關(guān)資料,非常不錯,具有參考解決價值,需要的朋友可以參考下2016-11-11
iOS11實現(xiàn)App內(nèi)自動連接Wi-Fi的方法
這篇文章主要給大家介紹了關(guān)于iOS11實現(xiàn)App內(nèi)自動連接Wi-Fi的相關(guān)資料,文中通過示例代碼介紹的非常詳細,對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2018-10-10
在IOS系統(tǒng)上滾動條滾動到指定的位置出現(xiàn)空白頁面的解決方案
這篇文章主要介紹了 在IOS系統(tǒng)上滾動條滾動到指定的位置出現(xiàn)空白頁面的解決方案,需要的朋友可以參考下2017-01-01
iOS 導(dǎo)航欄無縫圓滑的隱藏 Navigationbar實例代碼
本文通過實例代碼給大家介紹了iOS 導(dǎo)航欄無縫圓滑的隱藏 Navigationbar的效果,代碼簡單易懂,非常不錯,具有參考借鑒價值,需要的朋友可以參考下2017-11-11
淺析iOS應(yīng)用開發(fā)中線程間的通信與線程安全問題
這篇文章主要介紹了淺析iOS應(yīng)用開發(fā)中線程間的通信與線程安全問題,談到了包括互斥鎖的使用等設(shè)計要點,需要的朋友可以參考下2015-11-11

