iOS--消息推送后方法回调情况(简)
消息推送
工作
--- 消息推送
消息推送
消息推送集成参考友盟 http://dev.umeng.com/push/ios/integration
注意测试环境下,(友盟)设备在手机启动程序的时候已经在友盟服务器注册了,但是还需要手动添加设备方可推送
消息推送方法回调
一共有以下情况
- 应用启动,在前台显示收到推送消息
- 应用会alert出来(这里我没有做处理)
- 应用启动,退到后台收到推送消息
- 在方法里面
- (void) application:(UIApplication*)application didReceiveLocalNotification:(UILocalNotification*)notification
//数据在notification里面
应用未启动收到推送信息(由于我的工程是用了covadova框架,所以这里主要说一下如何在covadova框架的适配)
- 首先,这里的前提是由于应用关闭的状态下来接收推送消息的,所以要明白一点
“Each device establishes an accredited and encrypted IP connection with the service and
”
receives notifications over this persistent connection. If a notification for an app arrives
when that app is not running, the device alerts the user that the app has data waiting for
it.
意思就是,每个设备都会与苹果的provider(服务器)加密连接,如果一个app的推送消息送达,但是app没有运行,那么设备就会提醒用户去处理该app的推送消息,简而言之,无论多少个应用有推送功能,无论该应用是运行或关闭,设备都会与苹果服务器进行加密连接。- 二,在方法
- (BOOL)application:(UIApplication*)application didFinishLaunchingWithOptions:(NSDictionary*)launchOption
其实我们在里面设置一些UI全局参数以及自定义控制器,如果之前没有接触过消息推送的话,可能没留意到这个启动参数,如果没有接收到推送消息,那么这个启动参数(字典就为null),如果应用关闭的时候接收到推送消息然后点击这个推送消息来启动应用,那么里面的字典就存储了该推送消息。
- 三,我要实现页面跳转,由于covadova框架只有一个UIWebView实例,所以我要等webView加载完毕之后才能执行目标跳转,这里我需要了解控制器与AppDelegate里面个方法的执行顺序,这哥们在这方面做了些功夫,帮了不少忙http://www.cnblogs.com/dsxniubility/p/4322525.html 只是我在xcode7.1.1里面运行多次,都是viewDidAppearance运行在最后而非applicationDidBecomeActive,于是我觉得还是以自己当前的版本为准,在viewDidAppearace里面加载目标页面,但失败了,于是乎我猜想,可能是在加载目标url后,程序还在继续执行和面的代码,导致覆盖掉了效果,于是我想到了利用异步线程处理,当然由于是界面渲染,所以最后一定要回到主线程执行。像这样
dispatch_queue_t queue = dispatch_queue_create("some", DISPATCH_QUEUE_CONCURRENT);
dispatch_after(dispatch_time(DISPATCH_TIME_NOW, (int64_t)(1.0 * NSEC_PER_SEC)), queue, ^{
dispatch_async(dispatch_get_main_queue(), ^{
UIWebView * webView = window.rootViewController.view.subviews[];
[webView stringByEvaluatingJavaScriptFromString:[NSString stringWithFormat:@"window.location='%@'",_targetUrl]];
});
});
最后我发现,无论在viewDidAppearance还是在applicationDidBecomeActive方法里面执行该段代码,均可获得一样的效果,于是乎为了方便,我最终在appdelegate里面完成跳转。
iOS--消息推送后方法回调情况(简)的更多相关文章
- 了解iOS消息推送一文就够:史上最全iOS Push技术详解
本文作者:陈裕发, 腾讯系统测试工程师,由腾讯WeTest整理发表. 1.引言 开发iOS系统中的Push推送,通常有以下3种情况: 1)在线Push:比如QQ.微信等IM界面处于前台时,聊天消息和指 ...
- (转)iOS消息推送机制的实现
原:http://www.cnblogs.com/qq78292959/archive/2012/07/16/2593651.html iOS消息推送机制的实现 iOS消息推送的工作机制可以简单的用下 ...
- 【iOS】iOS消息推送机制的实现
iOS消息推送的工作机制可以简单的用下图来概括: Provider是指某个iPhone软件的Push服务器,APNS是Apple Push Notification Service的缩写,是苹果的服务 ...
- iOS消息推送机制
iOS消息推送的工作机制可以简单的用下图来概括: Provider是指某个iPhone软件的Push服务器,APNS是Apple Push Notification Service的缩写,是苹果的服务 ...
- [置顶] 手把手教你iOS消息推送证书生成以及Push消息
iOS推送消息是许多iOS应用都具备的功能,今天在给应用加推送功能,在生成证书的过程中,发生了各种令人蛋痛的事.下面就把步骤拿出来分享下: iOS消息推送的工作机制可以简单的用下图来概括: Provi ...
- iOS 消息推送(APNs) 傻瓜式教程
也可以去我的简书页面查看这篇文章 首先: 1.做iOS消息推送需要真机测试 2.做iOS消息推送需要有付费的开发者账号 是否继续看帖? 先学习一下相关的知识吧! 因为中途可能会遇到一些问题,这篇文章或 ...
- (转)iOS消息推送机制中pem文件的生成
转自:http://2015.iteye.com/blog/1567777 以前写了一篇文章:iOS消息推送机制的实现,这篇文章中生成的是p12文件,但是php是用的pem文件,生成的方法和p12文件 ...
- iOS消息推送证书创建过程
iOS消息推送证书创建过程 一.创建证书请求 1.在mac上进行钥匙串访问(keychain) 2. 选择钥匙串访问>证书助理> 从证书颁发机构中请求一个证书,如图1所示 图1 3.输入你 ...
- ios消息推送机制原理与实现
本文转载至 http://hi.baidu.com/yang_qi168/item/480304c542fd246489ad9e91 Push的原理: Push 的工作机制可以简单的概括为下图 图中, ...
随机推荐
- vim查找/替换字符串 及一些高级用法
例: 32 ./run 0_39.pkt 0_39.jpg 33 ./run 0_3.pkt 0_3.jpg 34 ./run 0_40.pkt 0_40.jpg 35 ./run 0_41.pkt ...
- Python学习笔记一--字符串的使用
一.基本操作 1. 合并字符串:“+” 2. 打印重复的字符串:"*" 3. 按位获取字符串中的字符:索引 4. 按位获取字符串中的子字符串:分片 5 ...
- CCS使用TIPS
2013-06-20 09:37:49 CCS使用TIPS: 代码编写: CCS中通过Using CodeSense方便写代码,跟VC助手类似,具体使用方法在ccs的help中搜索using visu ...
- FreeMarker中if标签内的判断条件
reeMarker中的<#if>标签除了里面直接判断 boolean 类型的变量外,也可以进行表达式判断,有几个细节记录一下 1. 判断对象是否存在(null) 经常会用到,如果对象 != ...
- 事件处理程序(addEventListener 和 attachEvent)
1.addEventListener 和 removeEventListener 接收三个参数:要处理的事件名.作为事件处理程序的函数和布尔值 缺点:不兼容IE <body> <in ...
- ejabberd的多域名(domain)设置
在ejabberd中可以支持多个domain,我讲一下我的配置过程我的ejabberd系统是:ejabberd server+sql server+openldap+gateway.我总共使用了5台机 ...
- Protobuf语言指南
Protobuf语言指南 l 定义一个消息(message)类型 l 标量值类型 l Optional 的字段及默认值 l 枚举 l 使用其他消息类型 l 嵌套类型 l 更新一个消息类型 ...
- 44、网页启动Activity,网页传值Activity
在assets新建一个demo.html 文件. <html> <head> <meta http-equiv="Content-Type" ...
- 【原】实验室签到PHP版本
表单 <html> <body> <h1>实验室自动签到测试</h1> <h2>输入学号和登录密码(建议自己改过密码后再来录入您的数据)&l ...
- MyEclipse的Hibernate Reverse Engineering失败解决方法
当使用MyEclipse的Hibernate逆向工程功能时,有时出现不成功的情况,点击finish按钮后对应的源文件目录没有生产相关对象,这时应该如何解决呢? 在国内的网站找了很久没找到,最后在国外的 ...