一、极光推送简介
极光推送是一个端到端的推送服务,使得服务器端消息能够及时地推送到终端用户手机上,整合了iOS、Android和WP平台的统一推送服务。使用起来方便简单,已于集成,解决了原生远程推送繁杂的步骤和各种验证、申请和易出错等等问题,为 JPush Server 上报 Device Token,免除开发者管理 Device Token 的麻烦,应用运行时,应用内 JPush 长连接可以持续地收到推送消息
。服务的使用是基础功能免费,高级功能和专业功能收费,具体可见图
二、极光推送产品
1.极光推送:远程推送服务(这篇文章主要介绍对象)
2.极光IM:极光的另一款产品,定位于App通讯工具(这篇文章暂不介绍)
三、原理:

红色部分是 APNs 推送,JPush 代理开发者的应用(需要基于开发者提供的应用证书),向苹果 APNs 服务器推送。由 APNs Server 推送到 iOS 设备上。


蓝色部分是 JPush 应用内推送部分,即 App 启动时,内嵌的 JPush SDK 会开启长连接到 JPush Server,从而 JPush Server 可以推送消息到 App 里。
四、极光推送iOS SDK的集成步骤
1.在JPush Portal上创建应用
点击创建应用后对应用进行相应的设置和配置
iOS开发证书和生产证书的配置,首先进行申请
证书的申请和之前真机调试的证书的过程一样,详细步骤请看真机调试那篇文档
申请到证书之后在Mac的钥匙串中导出.p12文件,注意直接选中证书文件后导出,不要展开private key再导出,否则会导致证书配置失败
和真机调试证书的.p12文件导出不一样,不能展开再导出,否则极光验证会出错
2.创建成功后会生成对应的App KEY,用来在应用极光推送的应用中配置
3.导入极光推送API开发包到项目文件中

在官网下载相应的SDK并解压缩后,会得到如图所示文件
打开文件夹
将lib文件拖到我们的项目中,并导入如下必须框架
     CFNetwork.framework
     CoreFoundation.framework
     CoreTelephony.framework
     SystemConfiguration.framework
     CoreGraphics.framework
     Foundation.framework
     UIKit.framework
     Security.framework
     libz.dylib
4.创建并配置PushConfig.plist文件
5.调用代码:在应用程序的AppDelegate代码中加入下面标注有Required的代码(当然得先导入.h头文件)
- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions

{

    self.window = [[[UIWindow alloc] initWithFrame:[[UIScreen mainScreen] bounds]] autorelease];

    self.window.backgroundColor = [UIColor whiteColor];

    [self.window makeKeyAndVisible];



    // Required

#if __IPHONE_OS_VERSION_MAX_ALLOWED > __IPHONE_7_1

   if ([[UIDevice currentDevice].systemVersion floatValue] >= 8.0) {

    //可以添加自定义categories

    [APService registerForRemoteNotificationTypes:(UIUserNotificationTypeBadge |

                                                   UIUserNotificationTypeSound |

                                                   UIUserNotificationTypeAlert)

                                       categories:nil];

  } else {

    //categories 必须为nil

    [APService registerForRemoteNotificationTypes:(UIRemoteNotificationTypeBadge |

                                                   UIRemoteNotificationTypeSound |

                                                   UIRemoteNotificationTypeAlert)

                                       categories:nil];

  }

#else

    //categories 必须为nil

  [APService registerForRemoteNotificationTypes:(UIRemoteNotificationTypeBadge |

                                                 UIRemoteNotificationTypeSound |

                                                 UIRemoteNotificationTypeAlert)

                                     categories:nil];

#endif

    // Required

    [APService setupWithOption:launchOptions];



    return YES;

}



- (void)application:(UIApplication *)application didRegisterForRemoteNotificationsWithDeviceToken:(NSData *)deviceToken {



    // Required

    [APService registerDeviceToken:deviceToken];

}



- (void)application:(UIApplication *)application didReceiveRemoteNotification:(NSDictionary *)userInfo {



    // Required

    [APService handleRemoteNotification:userInfo];

}



- (void)application:(UIApplication *)application didReceiveRemoteNotification:(NSDictionary *)userInfo fetchCompletionHandler:(void (^)(UIBackgroundFetchResult))completionHandler {





  // IOS 7 Support Required

  [APService handleRemoteNotification:userInfo];

  completionHandler(UIBackgroundFetchResultNewData);
}
6.好了,这个时候在登录极光账号,选择相应的应用,选择推送
再选择发送通知,进入到推送消息设置界面,设置完成后点击立即发送,此时,相应的iPhone端就会收到您发送出的推送通知啦

iOS极光推送SDK的使用流程的更多相关文章

  1. (转载)iOS 极光推送SDK 集成指南

    iOS SDK 集成指南 使用提示 本文匹配的 SDK版本:r1.2.5 以后. 查看最近更新了解最新的SDK更新情况. 产品功能说明 极光推送(JPush)是一个端到端的推送服务,使得服务器端消息能 ...

  2. iOS开发——iOS10升级极光推送SDK、友盟分享SDK

    前不久升级了Xcode8 ,同时iOS10系统也推送久. 由于公司需要适配iOS 10系统,同时第三方sdk建议升级. 包含替换升级新的SDK和相应的代码修改. 主要分享如何升级极光推送SDK,友盟分 ...

  3. 极光推送SDK通过泰尔终端实验室检测,符合统一推送接口标准

    1月7日,中国深圳--国内领先的开发者服务提供商极光(Aurora Mobile, NASDAQ:JG)宣布其旗下产品极光推送SDK通过中国信息通信研究院泰尔终端实验室的检测,其性能和接口标准符合统一 ...

  4. ios -- 极光推送《1》

    昨天公司项目要加入远程推送功能,自己做显然会很麻烦,所以用了极光的远程推送,下面我会讲如何制作推送证书并使用极光推送进行远程推送. 先讲讲怎么下载推送证书吧(前面的很简单要是知道的可以直接往下滑,简书 ...

  5. iOS 极光推送

    1.关于推送的几个证书.http://www.mobile-open.com/2016/931624.html 进入开发者中心:https://developer.apple.com/account/ ...

  6. iOS极光推送

    昨天花了一下午的时间研究了下极光推送,也前也是没做过,不知道从何下手!才开始的时候一看官方的SDK感觉好难,不过经过一系列的捣鼓之后,手机收到了推送信息,感觉其实并没有那么难! 1.配置开发证书(得有 ...

  7. iOS极光推送的基本使用

    昨天花了一下午的时间研究了下极光推送,也前也是没做过,不知道从何下手!才开始的时候一看官方的SDK感觉好难,不过经过一系列的捣鼓之后,手机收到了推送信息,感觉其实并没有那么难! 1.配置开发证书(得有 ...

  8. iOS - 极光推送证书的创建及过期处理

    无论iPhone还是安卓,我们用到的所有应用基本都有推送通知服务,因为这是应用很好的推广方式,有新产品了.有新更新了通知下用户及时查看.但Apple有点特殊,它的推送需要发到苹果服务器上中转一下,这就 ...

  9. iOS极光推送,两次Bundleid不一致( 开发证书没有通过验证 是否重新上传证书)的解决方案

    极光在配置ios端推送时,需要上传p12证书,如果遇到如下图:: 证书上传未通过的原因一般有: 1.当前上传的p12证书密码输入有误: 2. 证书导出的时候展开了证书,把个人私钥导了出来,导证书的时候 ...

随机推荐

  1. WebView的使用--Hybrid App

    App页面是运行在WebView中的,一个App页面对应一个WebView,本例实现两个WebView之间的跳转. 实现过程(用到了MUI框架): 1.页面标识+跳转按钮(index.html.mai ...

  2. Keras官方中文文档:序贯模型API

    Sequential模型接口 如果刚开始学习Sequential模型,请首先移步这里阅读文档,本节内容是Sequential的API和参数介绍. 常用Sequential属性 model.layers ...

  3. 【BZOJ2132】圈地计划(最小割)

    [BZOJ2132]圈地计划(最小割) 题面 BZOJ 题解 对我而言,不可做!!! 所以我膜烂了ZSY大佬 他的博客写了怎么做... 这,,...太强啦!! 完全想不到黑白染色之后反着连边 然后强行 ...

  4. [BZOJ1016] [JSOI2008] 最小生成树计数 (Kruskal)

    Description 现在给出了一个简单无向加权图.你不满足于求出这个图的最小生成树,而希望知道这个图中有多少个不同的最小生成树.(如果两颗最小生成树中至少有一条边不同,则这两个最小生成树就是不同的 ...

  5. angular+ionic+cordova(实战项目开发中,持续更新自己学到的和遇到的)

    最近公司开始准备做app了,大佬选择了angular+ionic+corvoda的开发结构,但是对于刚刚才开始对angular才有一点点感觉的我,就像是被一击闷棍敲了,半天没反应过来,emmm,怎么办 ...

  6. WordPress修改标签云大小及颜色

    修改WordPress标签字体大小: 在cpanel面板中依次打开「wp-includes」→「category-template.php」,找到wp_tag_cloud, 1 2 3 4 5 6 7 ...

  7. 序列化、反序列化(Serializable特性)

    //需要被实例化的类 using System.Collections; using UnityEngine; [Serializable] public class SerializableClas ...

  8. c++趣味之shared_ptr额外好处

    shared_ptr(sp)额外好处是什么?即使被转为基类,析构函数也可以正常执行. 已知两个类 class foo{}; class bar:foo{public:~bar(){}}; 先来看不用s ...

  9. 以太坊挖矿源码:ethash算法

    本文具体分析以太坊的共识算法之一:实现了POW的以太坊共识引擎ethash. 关键字:ethash,共识算法,pow,Dagger Hashimoto,ASIC,struct{},nonce,FNV ...

  10. Mycat 分片规则详解--取模范围分片

    实现方式:该算法先进行取模,然后根据取模值所属范围进行分片 优点:可以自主决定取模后数据的节点分布 缺点:dataNode 划分节点是事先建好的,需要扩展时比较麻烦. 配置示例: <tableR ...