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图标启动应用)
            }
        }
    }
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

  • 荒沙尽处是吾乡 天幕已经伴随着几声鸦鸣落下了。那予以我希望的光亮在一点一点地散去。胸膛空落落的,四周像冰,心框亦如...
    汐稔阅读 1,342评论 0 0
  • 亲爱的姐夫,通过刘莉的缘认识了你!没和你说两句你就爽朗的答应做我的粉丝!给了我很大的温暖和力量!感受到你是一...
    孤独的绽放阅读 847评论 0 0
  • 残酷的现实或许已将你我打磨成一个一味追求名与利的人,哪怕读过几十本书,素雅的书香却掩盖不住那刺鼻的铜臭味和官场味。...
    晶小西阅读 5,636评论 19 26

友情链接更多精彩内容