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

但很多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)
        }
        
    }

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

相关阅读更多精彩内容

友情链接更多精彩内容