`
gypgyp
  • 浏览: 87003 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类

APNS推送消息到达后的处理流程

阅读更多

 APN push的消息到达后,UIApplicationDelegate有两个方法和处理消息有关:

  1. application:didReceiveRemoteNotification:
  2. application:didFinishLaunchingWithOptions:

下面的流程图显示了app在处理推送消息的一个流程。

 

测试推送的流程时,有两个难题:

  1. 推送需要服务端配合,搭建整个远程推送的环境很困难。
  2. 在测试程序没有运行时,没有有效的办法检测程序的处理流程。

针对上面的问题,在测试过程中分别找到了对应的处理方式。

第一个问题的解决办法是用本地推送来代替远程推送。经查阅apple的官方文档:
http://developer.apple.com/library/mac/#documentation/NetworkingInternet/Conceptual/RemoteNotificationsPG/Chapters/WhatAreRemoteNotif.html#//apple_ref/doc/uid/TP40008194-CH102-SW1

远程推送和本地推送在处理流程上是一致的,不同的地方是delegate的方法和参数不同。所以只是测试推送在应用端的处理流程的话,是可以用本地推送模拟远程推送的。

 

第二个问题的解决方案是输出的重定向:参靠下面的网址:

http://stackoverflow.com/questions/2103141/iphone-once-i-have-redirected-nslog-to-a-file-how-do-i-revert-it-to-the-consol

具体代码如下:

    NSArray *paths = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES);

    NSString *documentsDirectory = [paths objectAtIndex:0];

    NSString *logPath = [documentsDirectory stringByAppendingPathComponent:@"console.log"];

    freopen([logPath cStringUsingEncoding:NSASCIIStringEncoding],"a+",stderr);

    

    NSLog(@"application didFinishLaunchingWithOptions");

 

将stderr重定向到一个文件后,所有NSLog的输出就由console转到了指定的文件。

 

 



 

 

 

 

  • 大小: 40.8 KB
分享到:
评论

相关推荐

    阿里云EAMS消息推送Java异步接入,给Android和IOS推送消息

    1. 实时推送:EAMS采用高效的网络协议,确保消息实时到达用户设备。 2. 广播与定向推送:支持向单个设备、用户群组或所有设备发送消息。 3. 消息跟踪:提供推送状态报告,便于分析推送效果和优化策略。 4. 安全性:...

    java消息推送给iphone

    Java消息推送给iPhone涉及到的是iOS应用开发中的远程通知服务,主要使用Apple的Push Notification Service (APNs)。在iOS设备上,当应用不在前台运行时,开发者可以通过APNs向设备发送消息,提醒用户有新的信息或者...

    IOS APNS 官方开发文档

    - **配置与开发流程**:为了确保推送通知的成功实现,开发者需要遵循一系列的步骤,包括创建SSL证书和密钥、安装配置文件、在服务器端配置推送服务等。 - **与APNs交互**:开发者服务器与APNs之间的通信需要遵循...

    ios 推送通知

    JPush-iOS-SDK是极光推送提供的iOS平台SDK,它为开发者提供了集成APNs推送服务的便利。极光推送是中国的一个第三方推送服务提供商,其SDK简化了与APNs交互的流程,提供了丰富的推送功能,如自定义通知样式、消息送达...

    Android apn 消息推送(server与client)

    总的来说,这个项目提供了实现Android平台APN消息推送服务的完整流程,涵盖了服务器开发、客户端实现和示例应用的展示。对于想要学习即时通讯技术或者搭建类似服务的开发者来说,这是一个很好的学习资源。通过深入...

    推送通知的原理

    4. **APNs处理**:APNs接收到推送请求后,会验证请求的有效性,并将通知推送到目标设备。如果设备处于离线状态,APNs会保留该通知并在设备上线时尝试重新推送。 5. **客户端响应**:设备收到推送通知后,会根据应用...

    IOS推送图解

    4. **APNS分发消息**:APNS接收到消息后,会在其注册的设备列表中找到对应的device token,将消息推送到对应的iOS设备。 5. **设备接收与显示**:一旦消息到达设备,操作系统会将通知传递给相应的应用,并根据应用...

    PushMeNotifyDemo

    总的来说,"PushMeNotifyDemo"提供了一个全面测试和验证APNs推送服务的环境,无论是对开发者还是对希望理解推送服务工作原理的人来说,都是一个宝贵的资源。通过深入研究和运行这个项目,可以加深对APNs以及跨平台推...

    同城高性能移动Push推送平台架构演进之路.docx

    推送流程包括认证、创建通知、发送到APNS、最后由APNS转发到设备。 Android平台则相对灵活,可以选择Google的C2DM(已弃用)、GCM(Google Cloud Messaging,已整合到FCM:Firebase Cloud Messaging)、自研方案或...

    本地和推送通知编程指南

    3. **苹果推送通知服务(APNs)**作为推送通知的核心组件,起到了网关的作用,负责将远程服务器上的通知信息传递给用户的设备。 4. **获取推送通知授权**:由于涉及到隐私问题,应用必须在用户的许可下才能接收推送...

    PushSharp-master.zip

    4. 错误处理与重试机制:当推送过程中遇到错误,PushSharp会自动进行错误处理并尝试重新发送,确保消息能够准确到达目标设备。 二、PushSharp的工作流程 1. 初始化:首先,开发者需要设置PushBroker实例,为不同的...

    网络游戏-基于移动网络的推送邮件系统及邮件的收发方法.zip

    3. **邮件推送**:当有新邮件到达时,服务器通过推送服务(如APNs for iOS 或 FCM for Android)将消息推送到用户的移动设备。 4. **邮件显示**:用户设备接收到推送通知后,游戏应用自动更新邮件列表,展示新邮件。...

    苹果Push消息Mac服务端示例代码

    8. **通知服务扩展**:在Mac上,你可以通过Notification Service Extension来增强推送通知的功能,比如在通知到达时实时处理内容,添加自定义图像等。 9. **用户权限管理**:考虑到用户隐私,应用必须请求用户的...

    WLQQ.rar_com.wlqq

    为了确保用户及时看到新消息,聊天应用可能采用推送通知服务,如Firebase Cloud Messaging(FCM)或Apple Push Notification service(APNs),即使用户不在应用内,也能接收到新消息提醒。 10. **实时性与消息...

    全国公交车查询系统软件

    这需要集成推送服务,如Google Firebase Cloud Messaging (FCM) 或Apple的Push Notification Service (APNs)。 10. **持续更新与维护**:随着城市交通状况的变化,公交线路和站点信息会不断更新,软件开发者需要...

    Email Induction

    - Push邮件系统通常基于HTTP或更高级的协议,如Exchange ActiveSync或Apple的Push Notification Service(APNS),当新邮件到达时,服务器会主动将邮件推送到用户的设备。 - 这种方式提高了实时性和用户体验,因为...

    qq协议文档

    8. **推送通知**:QQ的实时性要求它能快速响应新消息,这可能涉及到服务器向客户端推送通知的技术,如APNS(Apple Push Notification Service)或自建推送服务。 9. **P2P技术**:为了提高效率,QQ可能会使用P2P...

Global site tag (gtag.js) - Google Analytics