消息推送

工作

--- 消息推送

 

消息推送

消息推送集成参考友盟 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--消息推送后方法回调情况(简)的更多相关文章

  1. 了解iOS消息推送一文就够:史上最全iOS Push技术详解

    本文作者:陈裕发, 腾讯系统测试工程师,由腾讯WeTest整理发表. 1.引言 开发iOS系统中的Push推送,通常有以下3种情况: 1)在线Push:比如QQ.微信等IM界面处于前台时,聊天消息和指 ...

  2. (转)iOS消息推送机制的实现

    原:http://www.cnblogs.com/qq78292959/archive/2012/07/16/2593651.html iOS消息推送机制的实现 iOS消息推送的工作机制可以简单的用下 ...

  3. 【iOS】iOS消息推送机制的实现

    iOS消息推送的工作机制可以简单的用下图来概括: Provider是指某个iPhone软件的Push服务器,APNS是Apple Push Notification Service的缩写,是苹果的服务 ...

  4. iOS消息推送机制

    iOS消息推送的工作机制可以简单的用下图来概括: Provider是指某个iPhone软件的Push服务器,APNS是Apple Push Notification Service的缩写,是苹果的服务 ...

  5. [置顶] 手把手教你iOS消息推送证书生成以及Push消息

    iOS推送消息是许多iOS应用都具备的功能,今天在给应用加推送功能,在生成证书的过程中,发生了各种令人蛋痛的事.下面就把步骤拿出来分享下: iOS消息推送的工作机制可以简单的用下图来概括: Provi ...

  6. iOS 消息推送(APNs) 傻瓜式教程

    也可以去我的简书页面查看这篇文章 首先: 1.做iOS消息推送需要真机测试 2.做iOS消息推送需要有付费的开发者账号 是否继续看帖? 先学习一下相关的知识吧! 因为中途可能会遇到一些问题,这篇文章或 ...

  7. (转)iOS消息推送机制中pem文件的生成

    转自:http://2015.iteye.com/blog/1567777 以前写了一篇文章:iOS消息推送机制的实现,这篇文章中生成的是p12文件,但是php是用的pem文件,生成的方法和p12文件 ...

  8. iOS消息推送证书创建过程

    iOS消息推送证书创建过程 一.创建证书请求 1.在mac上进行钥匙串访问(keychain) 2. 选择钥匙串访问>证书助理> 从证书颁发机构中请求一个证书,如图1所示 图1 3.输入你 ...

  9. ios消息推送机制原理与实现

    本文转载至 http://hi.baidu.com/yang_qi168/item/480304c542fd246489ad9e91 Push的原理: Push 的工作机制可以简单的概括为下图 图中, ...

随机推荐

  1. PRMonitor,学习SSDT HOOK的好例子,学习的内核HOOK的好例子(注意右边有一堆类似的例子)

    http://download.csdn.net/detail/bolong5240/1060645

  2. R语言学习笔记:查看函数的R源代码

    getAnywhere 该函数可以返回一些函数的R源代码,如: getAnywhere(kmeans) 该函数具体用法,请参看官方说明. Retrieve an R Object, Including ...

  3. CentOS 命令随笔

     linux下敲命令时:快速删除当前行已经敲的命令: CTR+U  或者 CTR+/                         快速删除当前行刚输入接近鼠标当前位置的单词:CTR+W 以上在XS ...

  4. 【HDOJ】4729 An Easy Problem for Elfness

    其实是求树上的路径间的数据第K大的题目.果断主席树 + LCA.初始流量是这条路径上的最小值.若a<=b,显然直接为s->t建立pipe可以使流量最优:否则,对[0, 10**4]二分得到 ...

  5. 【HDOJ】1979 Fill the blanks

    预处理+搜索剪枝.4*4的边界上的数字必须是奇数. /* 1979 */ #include <iostream> #include <sstream> #include < ...

  6. $http.post发的数据,后台取不到两种解决方案

    方案一: var url = 'Gulugulus/setMenu', data = { menu: JSON.stringify(menu), test: 'a String' }, transFn ...

  7. 15个实用的Linux find命令示例(一)

    除了在一个目录结构下查找文件这种基本的操作,你还可以用find命令实现一些实用的操作,使你的命令行之旅更加简易. 本文将介绍15种无论是于新手还是老鸟都非常有用的Linux find命令. 首先,在你 ...

  8. UVA 10510 Cactus

    题意:给出一个有向图,问是不是仙人掌图.仙人掌图:每个边只在一个普通环内的强连通图. 解法:tarjan判断强连通分量是否为1个,记录找环的路径,在每找到一个环时遍历路径记录点出现的次数,如果出现有点 ...

  9. 转载:C++ 虚函数表解析

    目录(?)[+]   转载:http://blog.csdn.net/haoel/article/details/1948051# 前言 C++中 的虚函数的作用主要是实现了多态的机制.关于多态,简而 ...

  10. HDU4289 Control 最大流

    经典题,求去掉若干个点,使得两个点不在连通,总价值最少 所以拆点最小割,除了拆点边,流量都为无穷,拆点边是流量为价值 #include <iostream> #include <cs ...