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图标启动应用)
            }
        }
    }
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值