極光推送,收到消息後的處理操做

 

 

 

 

收到消息後,程序可能處於三狀態:1.程序未啓動;2.程序在後臺掛起;3.程序在前臺運行ios

 

主要分爲兩種:點擊APP圖標仍是點擊推送消息,查看消息的。服務器

1.程序未啓動,退出狀態,無論點擊圖標仍是推送消息,都會調用app

func application(application: UIApplication, didFinishLaunchingWithOptions launchOptions: [NSObject: AnyObject]?) -> Bool 方法,二者的區別在於點擊推送消息啓動應用會把消息的userInfo經過launchOptionsfetch

 

二、3:會調用it

 func application(application: UIApplication, didReceiveRemoteNotification userInfo: [NSObject : AnyObject])io

func application(application: UIApplication, didReceiveRemoteNotification userInfo: [NSObject : AnyObject], fetchCompletionHandler completionHandler: (UIBackgroundFetchResult) -> Void)  兩個方法後臺

下邊方法是ios7添加的方法,實現下邊方法後上邊方法會被覆蓋掉。下邊方法有以下特性,當程序在前臺運行時,收到遠程推送,會馬上調用此方法,可是若是程序在後臺被掛起,收到消息(未點擊推送消息)並不會執行下邊方法,若是想在收到消息的時候有些需求須要執行一些代碼,那麼能夠讓服務器發給APNS是在aps字典中加入ios7

aps = {
content-available = 1;
    };程序

這個字段,那麼當應用在後臺掛起時接收到消息時就會先執行下邊方法,固然,當點擊推送消息時,還會再次執行,這兩種狀況能夠根據applicationstate這個屬性區分,而上邊方法只會在點擊推送消息,或者應用在前臺運行時接受到消息時調用方法

程序在前臺運行時,轉化爲本地通知

 if (application.applicationState == UIApplicationStateActive) {
        
  使用激光方法,將遠程消息轉化爲本地通知
        
    }

在func application(application: UIApplication, didReceiveLocalNotification notification: UILocalNotification)方法中,將本地消息以alert的形式展現出來

if application.applicationState == UIApplicationState.Inactive{

    解析數據,進行相應跳轉

}

相關文章
相關標籤/搜索