關於iOS Push Notification的響應問題

來源:互聯網
上載者:User

標籤:

 最近在做推送訊息的時候遇到一個問題,就是當程式在後台運行時,這時候收到推送訊息後,點擊應用表徵圖後無法拿到這個訊息,至今還未解決,如有能夠解決辦法的朋友,忘不吝賜教。  簡單總結一下推送訊息的相應情況1. 當程式處於關閉狀態收到推送訊息時,點擊表徵圖會調用- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions 這個方法,那麼訊息給通過launchOptions這個參數擷取到。

2. 當程式處於前台工作時,這時候若收到訊息推送,會調用- (void)application:(UIApplication *)application

didReceiveRemoteNotification:(NSDictionary *)userInfo這個方法

3. 當程式處於後台運行時,這時候若收到訊息推送,如果點擊訊息或者點擊訊息表徵圖時,也會調用- (void)application:(UIApplication*)application

didReceiveRemoteNotification:(NSDictionary *)userInfo這個方法

4. 當程式處於後台運行時,這時候若收到訊息推送,如果點擊案頭應用表徵圖,則不會調用didFinishLaunchingWithOptions和didReceiveRemoteNotification方法,所以無法擷取訊息

下面是針對以上4種情況做響應處理:

第一種情況:

if (launchOptions) {

NSDictionary* pushNotificationKey = [launchOptionsobjectForKey:UIApplicationLaunchOptionsRemoteNotificationKey];

        if (pushNotificationKey) {

            //這裡定義自己的處理方式

        }

}

第二、三種情況:

if (application.applicationState == UIApplicationStateActive) {

//第二種情況

        if ([[userInfo objectForKey:@"aps"] objectForKey:@"alert"]!=NULL) {

            [WLHelper showAlert:@"推送訊息" msg:[[userInfo objectForKey:@"aps"] objectForKey:@"alert"]];

        }

} else {

//第三種情況

//這裡定義自己的處理方式

}

第四種情況: 

這時候你肯定是拿不到的

因為推送來的時候如果app進入後台,它已經進了這個回調

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

你可以直接在這個回調進行處理你想要的效果,或者你弄一個變數,把推送過的資料儲存起來,在程式後台進入前台的時候加一個判斷做你想要的效果

當然最好使用第一種,因為推送來的時候你就把推送給處理了 (還沒有驗證這個第四種方法,朋友們一起研究)

關於iOS Push Notification的響應問題

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在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.