iOS之點(diǎn)擊通知欄的通知進(jìn)入程序的觸發(fā)事件

點(diǎn)擊通知欄的通知進(jìn)入程序時(shí),會(huì)觸發(fā)App Delegate里的方法,分為以下兩種情況:
1、程序未啟動(dòng)(即底部任務(wù)欄里沒有進(jìn)程)時(shí):

此種情況下,點(diǎn)擊通知欄的通知進(jìn)入程序,會(huì)觸發(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)用還沒有加載,這時(shí)如果點(diǎn)擊通知的顯示按鈕,會(huì)調(diào)用didFinishLaunchingWithOptions,不會(huì)調(diào)用didReceiveRemoteNotification方法。如果點(diǎn)擊通知的關(guān)閉按鈕,再點(diǎn)擊應(yīng)用,只會(huì)調(diào)用didFinishLaunchingWithOptions方法。

2、程序已啟動(dòng):

如果程序已經(jīng)啟動(dòng),并駐留在內(nèi)存中,不管程序是在前臺(tái)(Foreground)還是在后臺(tái)(Background),如果點(diǎn)擊通知欄的通知進(jìn)入程序?qū)⒂|發(fā)以下方法:

  • (void)application:(UIApplication *)application didReceiveRemoteNotification:(NSDictionary *)userInfo

其中的userInfo參數(shù),就已經(jīng)是服務(wù)端推送過來的數(shù)據(jù),也是采用鍵值對方式進(jìn)行讀取。

如果點(diǎn)擊關(guān)閉再點(diǎn)擊應(yīng)用,則上面兩個(gè)方法都不會(huì)被調(diào)用這時(shí),只能在applicationWillEnterForeground或者applicationDidBecomeActive,根據(jù)發(fā)過來通知中的badge進(jìn)行判斷是否有通知,然后發(fā)請求獲取數(shù)據(jù)

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

  • 概述 在多數(shù)移動(dòng)應(yīng)用中任何時(shí)候都只能有一個(gè)應(yīng)用程序處于活躍狀態(tài),如果其他應(yīng)用此刻發(fā)生了一些用戶感興趣的那么通過通知...
    莫離_焱閱讀 6,717評論 1 8
  • 推送通知注意:這里說的推送通知跟NSNotification有所區(qū)別NSNotification是抽象的,不可見的...
    醉葉惜秋閱讀 1,615評論 0 3
  • 推送通知 注意:這里說的推送通知跟NSNotification有所區(qū)別 NSNotification是抽象的,不可...
    iOS開發(fā)攻城獅閱讀 4,417評論 1 13
  • 本地通知:就是指不需要互聯(lián)網(wǎng)就能發(fā)出的推送通知(不需要服務(wù)器去支持),使用的場景一般是定時(shí)提醒用戶完成一些任務(wù),例...
    JaXz閱讀 1,559評論 0 3
  • 寫作原因:網(wǎng)上看了很多推送文章都沒有完美的解答我的疑惑;主要有以下兩點(diǎn),1:推送來了我點(diǎn)擊應(yīng)用圖標(biāo)進(jìn)入應(yīng)用怎么取到...
    Thebloodelves閱讀 4,646評論 26 71

友情鏈接更多精彩內(nèi)容