iOS Xcode8下快速集成极光推送并兼顾iOS10

前言

iOS10下,远程推送发生了变化,新增的UserNotifications.framework将本地推送和远程推送整合在一起。 最近刚刚更新了Xcode8,自动创建证书和配置文件确实方便许多。琰君分享下以开发环境为例(非生产环境)在Xcode8下,快速集成极光推送并兼顾iOS10。

注意:极光推送的远程推送是免费的,但相应的用户统计,终端统计等功能是不免费。如果你需要用户统计,终端统计这些功能意味着需要付费才能使用。

参考链接

开发证书配置

APNs 推送原理及问题

iOS 推送全解析,你不可不知的所有 Tips!

接下来假设你都了解证书相关的,推送的一些概念和极光推送的知识。那么相信你应该知道需要一台iOS设备和一个苹果开发者帐号才能去体验远程推送。如果你清楚远程推送的原理,那可以直接从以下第2步开始。

集成步骤

远程推送原理

Xcode8创建项目,配置自动创建App ID/证书/配置文件

创建APNs 推送证书

在极光推送后台创建应用,并上传APNs 推送证书

项目中集成极光推送SDK

获取 APNs(通知) 推送内容

极光推送后台发送远程推送测试

1. 远程推送原理

当iOS设备联网的情况下,苹果服务器和iOS设备建立了一个长链接,即便应用处于挂起和后台的状态,苹果可以给iOS设备中的应用发送通知。

远程推送原理

概念

iOS:iOS设备

APNS Server:苹果服务器

Your App: 自己的应用,例如咕咚

Your Server:自己的服务器,例如咕咚服务器

推送流程

iOS 应用注册推送通知,iOS设备将设备的UDID和应用的Bundle ID到苹果服务器。

苹果服务器将接收到的UDID和Bundle ID加密生成一个deviceToken,并返回给对应iOS应用。

iOS应用将接收到的deviceToken发送到自己的服务器,服务器并保存。

自己的服务器需配置APNs 推送证书,当需要推送时,去后台查询推送目标设备的deviceToken,将消息和deviceToken一起发送给苹果服务器。

苹果服务器通过deviceToken找到对应设备下的对应应用,推送消息。

说明

我们的应用真机测试需要创建对应App ID/证书/配置文件, 这步可以用Xcode8 自动创建,而不需要到苹果开发者平台去创建。如果不是Xcode8,则需要去开发者平台申请,并且在Xcode配置,保证真机测试即可。

我们自己的服务器需要配置 APNs 推送证书,同样的分为开发证书和生产证书。需要到苹果开发者平台去申请。

如果不借助第三方推送平台,我们需要完成推送流程中的1,3,4步。借助极光推送,那么我们只需要完成推送流程中的1,3步,但同样需要我们申请APNs 推送证书,并且上传到极光推送平台。

2. Xcode8配置自动创建App ID/证书/配置文件

在Xcode8下,确保已经登录付费苹果开发者帐号。请开启Application Target的Capabilities->Push Notifications选项。

开启远程推送

2.勾选自动管理App ID/证书/配置文件

勾选自动管理

3.检查Xcode生产的App ID/证书/配置文件这步配置好了就可以真机运行了。

检查Xcode生产的App ID/证书/配置文件

3. 创建APNs 推送证书

登录开发者网站,并点击按钮创建证书

点击按钮创建证书

2.选择开发环境APNs 推送证书点击右下角按钮创建

创建开发环境APNs 推送证书

3.选择工程的App ID

选择工程的App ID

4.上传证书请求文件,不知道的童鞋可参照开发证书配置


上传证书请求文件

5.点击下载证书,并双击安装到钥匙串.

安装APNs 推送证书

6.打开钥匙串,并参照下图指示,找到对应的APNs 推送证书,并选择右键导出.

钥匙串导出证书

7.设置证书名字,并选择证书存放位置。

设置证书名字

8.设置证书密码,可不填。极光推送支持证书设置密码,但像leanCloud推送不支持证书设置密码,各位童鞋可按照实际情况来。最后输入电脑开密码,导出证书。

设置证书密码

输入电脑开机密码导出证书

4. 在极光推送后台创建应用,并上传APNs 推送证书

1.登录极光推送平台,切换到控制台,并创建应用。接下来在应用信息中上传开发APNs 推送证书。生产环境APNs 推送证书配置类似,不做赘述.

上传开发APNs 推送证书

核对应用的Bundle ID 等信息是否正确.

核对Bundle ID 等信息

5. 项目中集成极光推送SDK

    1.导入极光推送SDK

   2.导入系统依赖库

   3.AppDelegate.m 配置

     导入以下头文件

注册远程推送极光版本

注册远程推送用系统自带版本


得到苹果服务器返回的deviceToken,上传到极光推送服务器。

6.获取 APNs(通知) 推送内容

iOS 设备收到一条推送(APNs),用户点击推送通知打开应用时,应用程序根据状态不同进行处理需在 AppDelegate 中的以下方法中添加代码以获取apn内容

1.如果 App 状态为未运行,此函数将被调用,如果launchOptions包含UIApplicationLaunchOptionsRemoteNotificationKey表示用户点击apn 通知导致app被启动运行;如果不含有对应键值则表示 App 不是因点击apn而被启动,可能为直接点击icon被启动或其他。

2.基于iOS 6 及以下的系统版本,如果 App状态为正在前台或者点击通知栏的通知消息,那么此函数将被调用,并且可通过AppDelegate的applicationState是否为UIApplicationStateActive判断程序是否在前台运行。

3.基于iOS 7 及以上的系统版本,如果是使用 iOS 7 的 Remote Notification 特性那么此函数将被调用

4.基于iOS 10及以上的系统版本,

原[application: didReceiveRemoteNotification:]将会被系统废弃,

由新增UserNotifications.framework中的以下两个方法替代。

在极光推送SDK2.1.9版本以后可实现SDK封装的JPUSHRegisterDelegate协议方法,适配iOS10新增的delegate协议方法。

即以下两个方法:

7. 极光推送后台发送远程推送测试

1.登录极光推送,切换到控制台,并点击对应的应用,点击推送按钮

2.设置推送内容

选择推送环境iOS开发环境,目标人群,发送时间。再点击可选设置设置消息的具体内容。

3.设置消息具体内容。远程推送分为普通推送/后台推送/静默推送3种类型,并且类型由推送消息设置来决定。关于如何设置请参考iOS 推送全解析,你不可不知的所有 Tips!

5.推送历史可以在这里看得到,但有延迟,可能远程推送已接收到,推送历史数据还没有更新到最新。

关于Xcode8下集成极光远程推送的简单介绍,到这里就结束了。

来源:赵先生Try   //www.greatytc.com/p/53e0244e6081 

iOS攻城狮

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 197,597评论 5 462
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 83,053评论 2 375
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 144,583评论 0 326
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 52,888评论 1 267
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 61,772评论 5 358
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 46,536评论 1 275
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 36,922评论 3 388
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 35,554评论 0 254
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 39,838评论 1 293
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 34,861评论 2 314
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 36,677评论 1 328
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 32,483评论 3 316
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 37,928评论 3 300
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 29,104评论 0 19
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 30,403评论 1 255
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 41,945评论 2 343
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 41,156评论 2 339

推荐阅读更多精彩内容