iOS之點擊通知欄的通知進入程式的觸發事件,ios觸發

來源:互聯網
上載者:User

iOS之點擊通知欄的通知進入程式的觸發事件,ios觸發

 

點擊通知欄的通知進入程式時,會觸發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進行判斷是否有通知,然後發請求擷取資料



 

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.