IOS 在不打开电话服务的时候,可以响应服务器的推送消息,从而接收服务器的推送消息
2015-01-23 12:50
423 查看
在做即时通讯(基于xmpp框架)的时候遇到这样一个问题,就是在真机测试的时候,你按Home键返回桌面,在你返回桌面的时候,这是你的程序的挂起状态的,在你挂起的时候,
![](https://oscdn.geek-share.com/Uploads/Images/Content/202006/07/8c9de82e9f9989441088b9be2e2a6684.png)
相当于你的程序是死的,程序的所有进程全部是睡眠状态,所有这时候你做任何操作,都是无用的,手机永远也接收不到你的任何消息推送,因为在这里,手机处于休眠状态,这时候你必须要把他唤醒,才能正常的接收你所推送过来的消息,当时我的应用是打开了电话服务,因为电话服务永远都是让手机保持唤醒状态,所有在你手机处于任何状态的时候,都可以接到电话的,所有这就是电话服务。我当时用的就是这样的一个服务,使我的程序不被睡眠,当我上架AppStore的时候,被苹果拒绝了,所有绞尽脑汁想到了一个解决方法.如图是添加的电话服务,在我添加这样的服务时候,苹果商店不让上架AppStore的。所以我想了别的办法
如图是解决的办法:
在AppDelegate中。添加上这么一段代码即可。
好了,这就是我的解决办法,不用系统的电话服务照样可以唤醒程序不被睡眠,导致后台推送不过来消息。。
谢谢大家,我们以后可以多多学习,多多进步。。
PS:不知道别的办法是什么,有别的办法的可以给我留言,我们一同探讨。。
![](https://oscdn.geek-share.com/Uploads/Images/Content/202006/07/8c9de82e9f9989441088b9be2e2a6684.png)
相当于你的程序是死的,程序的所有进程全部是睡眠状态,所有这时候你做任何操作,都是无用的,手机永远也接收不到你的任何消息推送,因为在这里,手机处于休眠状态,这时候你必须要把他唤醒,才能正常的接收你所推送过来的消息,当时我的应用是打开了电话服务,因为电话服务永远都是让手机保持唤醒状态,所有在你手机处于任何状态的时候,都可以接到电话的,所有这就是电话服务。我当时用的就是这样的一个服务,使我的程序不被睡眠,当我上架AppStore的时候,被苹果拒绝了,所有绞尽脑汁想到了一个解决方法.如图是添加的电话服务,在我添加这样的服务时候,苹果商店不让上架AppStore的。所以我想了别的办法
如图是解决的办法:
在AppDelegate中。添加上这么一段代码即可。
- (void)applicationDidEnterBackground:(UIApplication *)application { [[UIApplication sharedApplication]setApplicationIconBadgeNumber:0];//进入前台取消应用消息图标 UIApplication* app = [UIApplication sharedApplication]; __block UIBackgroundTaskIdentifier bgTask; bgTask = [app beginBackgroundTaskWithExpirationHandler:^{ dispatch_async(dispatch_get_main_queue(), ^{ if (bgTask != UIBackgroundTaskInvalid) { bgTask = UIBackgroundTaskInvalid; } }); }]; dispatch_async(dispatch_get_global_queue(DISPATCH_QUEUE_PRIORITY_DEFAULT, 0), ^{ dispatch_async(dispatch_get_main_queue(), ^{ if (bgTask != UIBackgroundTaskInvalid) { bgTask = UIBackgroundTaskInvalid; } }); }); }
好了,这就是我的解决办法,不用系统的电话服务照样可以唤醒程序不被睡眠,导致后台推送不过来消息。。
谢谢大家,我们以后可以多多学习,多多进步。。
PS:不知道别的办法是什么,有别的办法的可以给我留言,我们一同探讨。。
相关文章推荐
- ios消息推送,Java服务器后台证书制作。
- 微信里面的签到加积分接口(已经测试过没问题)服务号不能每天发送消息,为了避免这个,每天签到的时候,推送一条最新的消息给客户。
- 接收对 http://192.168.1.18:8001/ObtainData/Service 的 HTTP 响应时发生错误。这可能是由于服务终结点绑定未使用 HTTP 协议造成的。这还可能是由于服务器中止了 HTTP 请求上下文(可能由于服务关闭)所致。
- iOS接收推送消息跳转相应的页面问题
- 如何在接收到空的远程推送消息时,在APP作出响应。
- IOS消息推送之服务器*.pem证书获取
- LeanCloud(原来的AVOS )可以提供消息推送、地理数据等服务。还可以实现更复杂的后端逻辑。
- iOS项目开发实战——实现苹果本地消息通知推送服务
- iOS消息推送机制详解,APNS服务器搭建基本思路
- iOS极光推送(接收后台消息和自定义消息)
- 苹果iOS消息推送服务教程
- iOS 消息推送可以用的本人亲测
- .net平台借助第三方推送服务在推送Android,IOS消息(极光推送_V3版本)最新
- 服务器向ios推送消息
- ios推送 程序未启动,收到推送消息,打开应用后跳转到相应的活动页面的代码。
- 在Unity中接收服务器的推送消息
- IOS开发 消息推送机制和流程以及客户端和服务器代码
- .net平台借助第三方推送服务在推送Android,IOS消息(极光推送_V2版本)
- iOS的远程消息推送服务。
- iOS中判断消息推送是否打开