點擊通知欄的通知進入程序時,會觸發App Delegate裡的方法,分為以下兩種情況:
1、程序未啟動(即底部任務欄裡沒有進程)時:
此種情況下,點擊通知欄的通知進入程序,會觸發以下方法
- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions
對於launchOptions參數,需要經過以下處理:
NSDictionary* pushNotificationKey = [launchOptions objectForKey:UIApplicationLaunchOptionsRemoteNotificationKey];
其中的pushNotificationKey才是從服務端推送過來的數據,使用鍵值對方式就可以讀取服務器傳遞過來的額外參數了。
應用還沒有加載,這時如果點擊通知的顯示按鈕,會調用didFinishLaunchingWithOptions,不會調用didReceiveRemoteNotification方法。如果點擊通知的關閉按鈕,再點擊應用,只會調用didFinishLaunchingWithOptions方法。
2、程序已啟動:
如果程序已經啟動,並駐留在內存中,不管程序是在前台(Foreground)還是在後台(Background),如果點擊通知欄的通知進入程序將觸發以下方法:
- (void)application:(UIApplication *)application didReceiveRemoteNotification:(NSDictionary *)userInfo
其中的userInfo參數,就已經是服務端推送過來的數據,也是采用鍵值對方式進行讀取。
如果點擊關閉再點擊應用,則上面兩個方法都不會被調用這時,只能在applicationWillEnterForeground或者applicationDidBecomeActive,根據發過來通知中的badge進行判斷是否有通知,然後發請求獲取數據
【iOS之點擊通知欄的通知進入程序的觸發事件】的相關資料介紹到這裡,希望對您有所幫助! 提示:不會對讀者因本文所帶來的任何損失負責。如果您支持就請把本站添加至收藏夾哦!