iOS 極光推送消息跳轉處理總結



iOS 10 及以上系統,采用以下方法:

    @available(iOS 10.0, *)
    func jpushNotificationCenter(_ center: UNUserNotificationCenter!, willPresent notification: UNNotification!, withCompletionHandler completionHandler: ((Int) -> Void)!) {
        // 前臺通知,JPUSH socket直連
        let userInfo = notification.request.content.userInfo
        // 在這里處理推送消息
        
        if let trigger = notification.request.trigger, trigger.isKind(of: UNPushNotificationTrigger.self){
            #if arch(arm) || arch(arm64)
                JPUSHService.handleRemoteNotification(userInfo)
            #endif
        }
        completionHandler(Int(UNNotificationPresentationOptions.alert.rawValue))
    }
    @available(iOS 10.0, *)
    func jpushNotificationCenter(_ center: UNUserNotificationCenter!, didReceive response: UNNotificationResponse!, withCompletionHandler completionHandler: (() -> Void)!) {
        // 點擊通知,無論App進程是否為殺死狀態
        let userInfo = response.notification.request.content.userInfo
        // 在這里處理推送消息(點擊推送消息進入應用)
        
        if let trigger = response.notification.request.trigger, trigger.isKind(of: UNPushNotificationTrigger.self){
            #if arch(arm) || arch(arm64)
                JPUSHService.handleRemoteNotification(userInfo)
            #endif
        }
        completionHandler()
    }



iOS 10以下系統,采用以下方法:

    func application(_ application: UIApplication, didReceiveRemoteNotification userInfo: [AnyHashable : Any]) {
        
        if application.applicationState == .active{ // iOS 10以下,前臺
            // 在這里處理前臺推送消息
        }else{ // iOS 10以下,后臺,且進程未終結
            // 在這里處理后臺推送消息(點擊推送消息進入應用)
        }
        #if arch(arm) || arch(arm64)
            JPUSHService.handleRemoteNotification(userInfo)
        #endif
    }
    // App進程已終結,啟動App進程
    func application(_ application: UIApplication, didFinishLaunchingWithOptions launchOptions: [UIApplicationLaunchOptionsKey: Any]?) -> Bool{
        
        if #available(iOS 10, *) {
            // iOS 10及以上,不處理此消息
        }else{
            // 如果系統是iOS 10以下時,解析消息內容
            if let remoteNotification = launchOptions?[UIApplicationLaunchOptionsKey.remoteNotification] as? [AnyHashable : Any]{
                // 在這里處理推送消息(點擊App圖標啟動應用)
            }
        }
    }
?著作權歸作者所有,轉載或內容合作請聯系作者
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發布,文章內容僅代表作者本人觀點,簡書系信息發布平臺,僅提供信息存儲服務。

推薦閱讀更多精彩內容

  • 荒沙盡處是吾鄉 天幕已經伴隨著幾聲鴉鳴落下了。那予以我希望的光亮在一點一點地散去。胸膛空落落的,四周像冰,心框亦如...
    汐稔閱讀 164評論 0 0
  • 親愛的姐夫,通過劉莉的緣認識了你!沒和你說兩句你就爽朗的答應做我的粉絲!給了我很大的溫暖和力量!感受到你是一...
    孤獨的綻放閱讀 75評論 0 0
  • 殘酷的現實或許已將你我打磨成一個一味追求名與利的人,哪怕讀過幾十本書,素雅的書香卻掩蓋不住那刺鼻的銅臭味和官場味。...
    晶小西閱讀 1,705評論 19 26