美文网首页
iOS 点击icon进入程序怎么获取推送消息

iOS 点击icon进入程序怎么获取推送消息

作者: 墨狂之逸才 | 来源:发表于2017-02-24 18:37 被阅读3477次

    但很多app都实现这种,不点通知进入,直接点app启动照样能得到推送信息的。

    网上的说法:没有具体实施

    如果不是点击通知栏进入APP,是拿不到推送消息的。原因是这样的,如果堆积了多条应用,回调将会变得复杂,而且没用。正确的做法是,服务器要缓存好当前的未读消息,进入应用的时候去获取未读消息。如果要识别通知栏点击,那获取未读消息之前可能还要进行进一步逻辑处理。

    原来极光推送有background模式,我后台的时候直接把消息处理一下,要求显示alert事件,点击icon进入app内就显示alert了。

    有关极光社区中的帖子:https://community.jiguang.cn/t/ios/13750

    // Required, iOS (7.0 and later) Support
        //iOS7及以上系统,收到通知
        func application(_ application: UIApplication, didReceiveRemoteNotification userInfo: [AnyHashable: Any], fetchCompletionHandler completionHandler: @escaping (UIBackgroundFetchResult) -> Void) {
            //处理收到的 APNs 消息
            JPUSHService.handleRemoteNotification(userInfo)
            completionHandler(.newData)
            /**
             *  iOS的应用程序分为3种状态
             *      1、前台运行的状态UIApplicationStateActive;
             *      2、后台运行的状态UIApplicationStateInactive;
             *      3、app关闭状态UIApplicationStateBackground。
             */
            if application.applicationState == .active {
                // 应用正处理前台状态下,不会收到推送消息,因此在此处需要额外处理一下
                //let message = "您有一条新的消息,是否点击查看"
                print("// 应用正处理前台状态下,不会收到推送消息,因此在此处需要额外处理一下------------userinfo:%@",userInfo)
                showAlertWithMessage(userInfo)
                
                
            } else if application.applicationState == .inactive {
                // 处于后台运行状态时
                
               print("// 处于后台运行状态时---------userinfo:%@",userInfo)
               showAlertWithMessage(userInfo)
                
            } else if application.applicationState == .background {
                //app关闭状态
                print("//app关闭状态-----------userinfo:%@",userInfo)
                showAlertWithMessage(userInfo)
            }
            
        }
    
    

    相关文章

      网友评论

          本文标题:iOS 点击icon进入程序怎么获取推送消息

          本文链接:https://www.haomeiwen.com/subject/jhpbwttx.html