一、极光推送工程端

1、下载SDK

 极光推送是一个推送消息的第三方,SDK下载:https://www.jpush.cn/common/products

 集成压缩包内容:包名为JPush-iOS-SDK-{版本号}

  • lib文件夹:包含头文件 JPUSHService.h,静态库文件jpush-ios-x.x.x.a ,支持的iOS版本为 5.0 及以上版本。(请注意:模拟器不支持APNs)

  • pdf文件:集成指南

  • demo文件夹:示例

 真如上面的介绍,我们在工程中需要 lib 文件夹,因此就只需要将 lib 文件夹 导入。

2、导入必要的框架

  • CFNetwork.framework

  • CoreFoundation.framework

  • CoreTelephony.framework

  • SystemConfiguration.framework

  • CoreGraphics.framework

  • Foundation.framework

  • UIKit.framework

  • Security.framework

  • Xcode7需要的是 libz.tbd ;Xcode7以下版本是 libz.dylib

  • Adsupport.framework (获取IDFA需要;如果不使用IDFA,请不要添加)

3、plist 文件创建之坑

 在极光的帮助文档中有一个坑,就是 创建并配置PushConfig.plist文件 。如果初始化 JPUSHService 使用极光 <= 1.8.8版本的SDK的注册方法(+ (void)setupWithOption:(NSDictionary *)launchingOption; 以弃用)就创建,如果使用之后版本的初始化方法,就不需要。我在下面就使用现在最新的一个版本 2.1.5,所以就没有创建 PushConfig.plist文件

4、代码

 现在 AppDelegate 中导入如下的两个头文件

// 极光服务头文件
#import "JPUSHService.h"
// ASIdentifierManager控制器头文件,广告,可以不使用
#import <AdSupport/ASIdentifierManager.h>

 调用代码

- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions {
// Override point for customization after application launch. // 广告(一般不使用)
// NSString *advertisingId = [[[ASIdentifierManager sharedManager] advertisingIdentifier] UUIDString];
//Required
if ([[UIDevice currentDevice].systemVersion floatValue] >= 8.0) {
//可以添加自定义categories
[JPUSHService registerForRemoteNotificationTypes:(UIUserNotificationTypeBadge |
UIUserNotificationTypeSound |
UIUserNotificationTypeAlert)
categories:nil];
} else {
//categories 必须为nil
[JPUSHService registerForRemoteNotificationTypes:(UIRemoteNotificationTypeBadge |
UIRemoteNotificationTypeSound |
UIRemoteNotificationTypeAlert)
categories:nil];
}
//Required
// 如需继续使用pushConfig.plist文件声明appKey等配置内容,请依旧使用[JPUSHService setupWithOption:launchOptions]方式初始化。
[JPUSHService setupWithOption:launchOptions appKey:@"你创建的应用的APPKey" // 注意一定要是自己的
channel:@"App Store" // 指明应用程序包的下载渠道,为方便分渠道统计,具体值由你自行定义
apsForProduction: // 1.3.1版本新增,用于标识当前应用所使用的APNs证书环境 0 (默认值)表示采用的是开发证书,1 表示采用生产证书发布应用
advertisingIdentifier:nil]; // 不使用就将advertisingIdentifier置为nil
// advertisingIdentifier:advertisingId]; // 当你入坑创建了plist文件,也可以使用这个初始化方法
// [JPUSHService setupWithOption:launchOptions]; return YES;
} #pragma mark - 监听
- (void)application:(UIApplication *)application
didRegisterForRemoteNotificationsWithDeviceToken:(NSData *)deviceToken { /// Required - 注册 DeviceToken
NSLog(@"%d == deviceToken == %@",__LINE__, deviceToken);
[JPUSHService registerDeviceToken:deviceToken];
} // 反馈给服务器
- (void)application:(UIApplication *)application didReceiveRemoteNotification:(NSDictionary *)userInfo { // Required,For systems with less than or equal to iOS6 [UIApplication sharedApplication].applicationIconBadgeNumber = ; [JPUSHService handleRemoteNotification:userInfo];
} - (void)application:(UIApplication *)application didFailToRegisterForRemoteNotificationsWithError:(NSError *)error {
//Optional
NSLog(@"did Fail To Register For Remote Notifications With Error: %@", error);
}

5、关于广告(IDFA)

 r2.1.5版本增加一个上传IDFA字符串的接口:

+ (void)setupWithOption:(NSDictionary *)launchingOption
appKey:(NSString *)appKey
channel:(NSString *)channel
apsForProduction:(BOOL)isProduction
advertisingIdentifier:(NSString *)advertisingId;

 这个方法也就是我在上面使用的,如果不使用IDFA,仍可使用下面的接口:

+ (void)setupWithOption:(NSDictionary *)launchingOption
appKey:(NSString *)appKey
channel:(NSString *)channel
apsForProduction:(BOOL)isProduction;

 总结:三种初始化方法可以根据你自己的需求随意选择。

6、允许XCode7支持Http传输方法

 如果用的是Xcode7时,需要在App项目的plist手动配置下key和值以支持http传输:

 选择1:根据域名配置

  • 在项目的info.plist中添加一个Key:App Transport Security Settings,类型为字典类型。

  • 字典中添加一个Key:Allow Arbitrary Loads,类型为Boolean类型,值为YES。

  如图:

 选择2:全局配置

<key>NSAppTransportSecurity</key>
<dict>
<key>NSAllowsArbitraryLoads</key>
   <true/>
</dict>

以上就是你在工程中所有的配置,下面就是关于极光推送服务器端的操作!

二、极光推送服务器端

1、注册用户

2、创建应用

3、发送通知

 通知内容直接填写就可以

 推送对象需要就行一下选择,如下图:

 RegistrationID会在你工程的控制台打印,你可以根据这个来给一个人进行发送通知

以上是本人对极光推送的一个小总结和整理,大家有更好的话,就链接!!!!

【原】iOS学习之极光推送的更多相关文章

  1. 李洪强iOS之集成极光推送三iOS集成指南

    李洪强iOS之集成极光推送三iOS集成指南 SDK说明 适用版本 本文匹配的 SDK版本:r2.1.5 以后.查看最近更新了解最新的SDK更新情况.使用Xcode 6及以上版本可以使用新版Push S ...

  2. 李洪强iOS之集成极光推送二iOS 证书 设置指南

    李洪强iOS之集成极光推送二iOS 证书 设置指南 创建应用程序ID 登陆 iOS Dev Center 选择进入iOS Provisioning Portal. 在 iOS Provisioning ...

  3. 李洪强iOS之集成极光推送一iOS SDK概述

    李洪强iOS之集成极光推送一iOS SDK概述 JPush iOS 从上图可以看出,JPush iOS Push 包括 2 个部分,APNs 推送(代理),与 JPush 应用内消息. 红色部分是 A ...

  4. 李洪强iOS开发之极光推送JPush

    李洪强iOS开发之极光推送JPush

  5. ios 开发之 -- 极光推送,发送自定义消息,进入制定页面

    在进行极光推送时候,发现版本有所更新,以前截取didfinish入口方法里面的launchOptions,获取一个本地的通知内容,进行本地展示不可用了,通过查询官方文档和网上的资料才发现,方法改变了, ...

  6. .net平台借助第三方推送服务在推送Android,IOS消息(极光推送_V3版本)最新

    最近刚从极光推送官网上看到V2版本要停用,不得不有重新写V3版本的.这里用到了 HTTP Basic Authentication http://www.cnblogs.com/pingming/p/ ...

  7. [iOS]iPhone利用<极光推送>实现远程推送

    准备: 1. 一个Xcode工程 2. 开发者账号 3. 真机 (重要,模拟器无法进行远程推送,因为模拟器没有UDID) 第一步:绑定工程的Bundle Identifer 首先当然要登录https: ...

  8. IOS学习笔记—苹果推送机制APNs

    转自:唐韧_Ryan http://blog.csdn.net/ryantang03/article/details/8482259 推送是解决轮询所造成的流量消耗和 电量消耗的一个比较好的解决方案, ...

  9. [原]Android Studio使用极光推送出现at cn.jpush.android.service.ServiceInterface.a(Unknown Source) 已解决

随机推荐

  1. 如何接触学习java

    信息科技必将是未来的潮流,Java语言必将在时代的进步中发挥不可估量的作用,未来,掌握好一门实用而且有良好应用前景的技术是你们的首要任务. 零基础怎么学Java 多年Java教育培训经验事实表明,零基 ...

  2. CSS3按钮效果

    来自codepen,http://codepen.io/PalashSharma20/pen/YWBAgN 知识点:屏幕居中.transform.transition.transition-delay ...

  3. iOS开发UI中懒加载的使用方法

    1.懒加载基本 懒加载——也称为延迟加载,即在需要的时候才加载(效率低,占用内存小).所谓懒加载,写的是其getter方法.说的通俗一点,就是在开发中,当程序中需要利用的资源时.在程序启动的时候不加载 ...

  4. 微信小程序开发视频教程新鲜出炉

    微信小程序开发公测了,可是对于新手来说,不同的框架不同的开发机制,如何快速适应呢?微信小程序开发视频教程新鲜出炉了,从零开始一步一步搭建微信小程序,每个章节都会涉及到不同的知识点,等教程学习完你不但掌 ...

  5. Linux串口中的超时设置

    在Linux下使用串口通信时,默认的阻塞模式是不实用的.而采用select或epoll机制的非阻塞模式,写代码有比较麻烦.幸好Linux的串口自己就带有超时机制. Linux下使用termios.h中 ...

  6. BZOJ2435——[Noi2011]道路修建

    1.题意:给个树,边的权值=两边的点数差*此边的长度,求所有边的权值和 2.分析:真不想说啥了...dfs即可 #include <cmath> #include <cstdio&g ...

  7. mysql取前取后

    SELECT * FROM (SELECT * FROM 表 WHERE id<居中的ID ORDER BY id DESC LIMIT 5) as A UNION all SELECT * F ...

  8. [BZOJ1112][POI2008]砖块Klo

    [BZOJ1112][POI2008]砖块Klo 试题描述 N柱砖,希望有连续K柱的高度是一样的. 你可以选择以下两个动作 1:从某柱砖的顶端拿一块砖出来,丢掉不要了. 2:从仓库中拿出一块砖,放到另 ...

  9. phpcms中的RBAC权限系统

    PHPCMS中的RBAC权限系统主要用到了4张数据表:管理员表,角色表,菜单表,菜单权限表.先来看看数据库的数据表结构: admin 管理员表 ID 字段 类型 Null 默认 索引 额外 注释 1 ...

  10. ASM,C数据类型

    汇编: db  单字节 = 8bit dw 单字    = 16bit dd  双字   = 32bit C数据类型: char                字节 8bit unsigned cha ...