2015年5月4日 星期一

iOS App不同狀態下的推播處理方式

最近在進行iOS程式開發時遇到的推播問題,特此記錄一下
我程式的需求是在收到推播後,針對推播的收到的內容進行頁面的切換
依App的狀態,推播發生時會有下面三種狀況:

1. App在背景執行的情況下收到推播    

這個情況就是一般的情況,推播會透過didReceiveRemoteNotification來進行處理

2. App在執行的情況下收到推播    

在App開啟的情況下收到推播,這種情況下推播也是會透過didReceiveRemoteNotification來進行處理,但通常就不會有推播的音效及跳出訊息,使用者收到推播時會不知道自己有收到推播,因此可以在didReceiveRemoteNotification裡進行app狀態的判斷後,加入其他提醒方法來讓使用者知道有推播發生

3. App在未開啟的情況下收到推播

在App未開啟的狀態下,收到推播後會透過推播來進行開啟App的動作,但是就不會執行didReceiveRemoteNotification,因此在這種情況下需要在AppDelegate的didFinishLaunchingWithOptions裡的launchOptions來進行判斷

針對三種狀況進行推播判斷的程式碼如下:

swift程式碼:
AppDelegate_swift_—_Edited.png

obj-c程式碼:
AppDelegate_m_—_Edited.png

沒有留言:

張貼留言