【原】iOS学习之极光推送
一、极光推送工程端
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学习之极光推送的更多相关文章
- 李洪强iOS之集成极光推送三iOS集成指南
李洪强iOS之集成极光推送三iOS集成指南 SDK说明 适用版本 本文匹配的 SDK版本:r2.1.5 以后.查看最近更新了解最新的SDK更新情况.使用Xcode 6及以上版本可以使用新版Push S ...
- 李洪强iOS之集成极光推送二iOS 证书 设置指南
李洪强iOS之集成极光推送二iOS 证书 设置指南 创建应用程序ID 登陆 iOS Dev Center 选择进入iOS Provisioning Portal. 在 iOS Provisioning ...
- 李洪强iOS之集成极光推送一iOS SDK概述
李洪强iOS之集成极光推送一iOS SDK概述 JPush iOS 从上图可以看出,JPush iOS Push 包括 2 个部分,APNs 推送(代理),与 JPush 应用内消息. 红色部分是 A ...
- 李洪强iOS开发之极光推送JPush
李洪强iOS开发之极光推送JPush
- ios 开发之 -- 极光推送,发送自定义消息,进入制定页面
在进行极光推送时候,发现版本有所更新,以前截取didfinish入口方法里面的launchOptions,获取一个本地的通知内容,进行本地展示不可用了,通过查询官方文档和网上的资料才发现,方法改变了, ...
- .net平台借助第三方推送服务在推送Android,IOS消息(极光推送_V3版本)最新
最近刚从极光推送官网上看到V2版本要停用,不得不有重新写V3版本的.这里用到了 HTTP Basic Authentication http://www.cnblogs.com/pingming/p/ ...
- [iOS]iPhone利用<极光推送>实现远程推送
准备: 1. 一个Xcode工程 2. 开发者账号 3. 真机 (重要,模拟器无法进行远程推送,因为模拟器没有UDID) 第一步:绑定工程的Bundle Identifer 首先当然要登录https: ...
- IOS学习笔记—苹果推送机制APNs
转自:唐韧_Ryan http://blog.csdn.net/ryantang03/article/details/8482259 推送是解决轮询所造成的流量消耗和 电量消耗的一个比较好的解决方案, ...
- [原]Android Studio使用极光推送出现at cn.jpush.android.service.ServiceInterface.a(Unknown Source) 已解决
随机推荐
- C#虚函数和接口的区别
接口只能声明不能实现,虚函数可以. 接口:对外提供可以访问的函数叫接口.虚函数不需要被强制重写,其本身含有实现部分. 抽象类:指派了派生类必须实现的函数(纯虚函数),不然编译不通过. 虚函数的限制: ...
- XMPP开发环境配置
首先配置XMPP开发环境配置需要的软件 先安装xampp-osx-1.8.3-5-installer.dmg 安装成功后launchpad里会多出一个XAMPP(其他),点开里面的manager-os ...
- [Fluent NHibernate]第一个程序
目录 写在前面 Fluent Nhibernate简介 基本配置 总结 写在前面 在耗时两月,NHibernate系列出炉这篇文章中,很多园友说了Fluent Nhibernate的东东,也激起我的兴 ...
- 前端项目构建工具---Grunt
什么是Grunt? grunt是javascript项目构建工具,在grunt流行之前,前端项目的构建打包大多数使用ant.(ant具体使用 可以google),但ant对于前端而言,存在不友好,执行 ...
- TopHat
What is TopHat? TopHat is a program that aligns RNA-Seq reads to a genome in order to identify exon- ...
- 【Alpha版本】 第三天 11.9
一.站立式会议照片: 二.项目燃尽图: 三.项目进展: 成 员 昨天完成任务 今天完成任务 明天要做任务 问题困难 心得体会 胡泽善 注册界面的实现 填写招聘时用户填写各个日期到可以使用工具方便选择日 ...
- iphone的click导致div变黑
-webkit-tap-highlight-color这个属性只用于iOS (iPhone和iPad).当你点击一个链接或者通过Javascript定义的可点击元素的时候,它就会出现一个半透明的灰色背 ...
- rails enum用于存储数据
http://api.rubyonrails.org/classes/ActiveRecord/Enum.html 新的项目中有一个字段是展示类型,可以用下拉框去做,用string存储具体的类型字段. ...
- 基于jquery fly插件实现加入购物车抛物线动画效果,jquery.fly.js
在购物网站中,加入购物车的功能是必须的功能,有的网站在用户点击加入购物车按钮时,就会出现该商品从点击出以抛物线的动画相似加入购物车,这个功能看起来非常炫,对用户体验也有一定的提高.下面介绍基于jque ...
- hadoop 2.6 centos 7.1 下的一些操作
开启hdfs: start-dfs.sh 开启yarn: start-yarn.sh 查看hdfs:http://ip:50070/ 查看RM:http://ip:8088/