首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >专栏 >iOS集成极光推送iOS集成极光推送

iOS集成极光推送iOS集成极光推送

作者头像
hrscy
发布于 2018-08-30 04:20:57
发布于 2018-08-30 04:20:57
3.1K00
代码可运行
举报
文章被收录于专栏:hrscyhrscy
运行总次数:0
代码可运行

iOS集成极光推送

一、配置APNs

苹果APNs(英文全称:Apple Push Notification Service)

1.配置开发证书

apns_1.png

apns_2.png

apns_4.png

apns_5.png

apns_6.png

apns_7.png

apns_8.png

apns_9.png

apns_10.png

apns_11.png

![Uploading apns_13_803165.png . . .]

2.配置生产证书

和配置开发证书的流程相同。

3.将配置好的证书导出为 .p12 文件

apns_13.png

apns_14.png

apns_15.png

一、注册极光推送帐号

可登录 极光推送官网 注册帐号。

注册成功后进入控制台

apns_12.png

apns_16.png

二、集成极光推送SDK

sdk地址

我使用的是JPush-iOS-SDK-2.1.0。下载的文件里有个pdf文件iOS+SDK+Integration+Guide.pdf,介绍了集成极光推送的详细代码。

在工程文件中,做如下设置:

apns_17.png

下面是我写的代码:

AppDelegate.m文件

代码语言:javascript
代码运行次数:0
运行
复制
- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions {
    //设置appKey
    [JPushConfig registerJPush:launchOptions];
    return YES;
}


#pragma mark 修改通知处理函数
-(void)application:(UIApplication *)application didReceiveRemoteNotification:(NSDictionary *)userInfo fetchCompletionHandler:(nonnull void (^)(UIBackgroundFetchResult))completionHandler {
    //推送消息携带 content-available: 1 是Background 运行的必须参数,如果不携带此字段则与iOS7 之前版本的普通推送一样。
    //清空角标
    [JPUSHService resetBadge];
    if (!userInfo) {
        completionHandler(UIBackgroundFetchResultNoData);
        return ;
    }
    completionHandler(UIBackgroundFetchResultNewData);
    //根据服务器设置的 userInfo 的格式,进行解析
}

// Required
-(void)application:(UIApplication *)application didRegisterForRemoteNotificationsWithDeviceToken:(NSData *)deviceToken {
    [JPUSHService registerDeviceToken:deviceToken];
}

// Required
-(void)application:(UIApplication *)application didReceiveRemoteNotification:(NSDictionary *)userInfo {
    [JPUSHService handleRemoteNotification:userInfo];
    application.applicationIconBadgeNumber = 0;
}

- (void)application:(UIApplication *)application
didReceiveLocalNotification:(UILocalNotification *)notification {
    [JPUSHService showLocalNotificationAtFront:notification identifierKey:nil];
}

-(void)application:(UIApplication *)application didFailToRegisterForRemoteNotificationsWithError:(NSError *)error {
}

- (void)applicationDidBecomeActive:(UIApplication *)application {
    [application setApplicationIconBadgeNumber:0];
}

JPushConfig.m文件

代码语言:javascript
代码运行次数:0
运行
复制
/** 注册 JPush */
+(void)registerJPush:(NSDictionary *)launchOptions {
    // Required
    if ([[UIDevice currentDevice].systemVersion floatValue] >= 8.0) {
        //可以添加自定义categories
        [JPUSHService registerForRemoteNotificationTypes:(UIUserNotificationTypeBadge |
                                                          UIUserNotificationTypeSound |
                                                          UIUserNotificationTypeAlert)
                                              categories:nil];
    } else {
        //categories 必须为nil
        [JPUSHService registerForRemoteNotificationTypes:(UIUserNotificationTypeBadge |
                                                          UIUserNotificationTypeBadge |
                                                          UIUserNotificationTypeBadge)
                                              categories:nil];
    }
    NSString *appKey = @"极光推送生成的KEY";
    NSString *channel = @"App Store";//发布渠道,可以随便定义
    BOOL isProduction = YES;//这个要根据极光推送控制台里设置的是开发环境还是生产环境
    //Required
    [JPUSHService setupWithOption:launchOptions
                           appKey:appKey
                          channel:channel
                 apsForProduction:isProduction];
}

说明: isProduction 这个参数,当时询问极光工作人员的时候,他们说这个参数是保留参数,不起作用,但是发布到 app store 上的 app 最好还是设置为 YES 吧。

收到通知消息后,在AppDelegate.m跳转到指定界面的方法:

代码语言:javascript
代码运行次数:0
运行
复制
    UIViewController *vc = [[UIViewController alloc] init];
    [self.window.rootViewController presentViewController:vc animated:YES completion:nil];

三、关于极光推送收不到后台推送的通知的问题

首先,要了解一下 iOS的开发环境和生产环境。

我的情况是这样,代码里设置的是生产环境,由于公司要求使用 alias 来区分需要推送通知的用户,再使用 xcode 测试的时候,使用极光推送控制台向指定 alias 推送通知,在极光推送控制台设置 iOS 的环境为生产环境,但是始终收不到推送的通知,后改为开发环境,马上就可以收到推送的通知,当时感到很奇怪,为什么开发环境能收到通知,而生产环境收不到通知呢?

以至于后来 app 发布到 app store 之后,还是不能收到后台推送的通知。

解决办法如下:

  1. 按照我上面的方式,正确配置开发环境证书和生产环境证书。

2.需要注意的地方就是,app stroe 上线的 app 使用的证书都是生产环境证书,没有发布到 app store 的 app 使用的都是开发环境证书。

3.如果想测试线上环境,也不是没有办法,苹果提供配置一种模拟线上发布的环境,如下图:

模拟线上环境

然后点击下一步,选择发布证书,下一步选择 Ad Hoc 的 provision,就可以了打一个模拟线上测试的包了,这个包允许直接安装到手机,可以使用 itunes 或者 pp 助手等工具进行安装,就可以真实用户的操作,包括测试推送。

4.如果推送使用的是自己的后台,需要告知,后台设置 iOS 的环境为生产环境,才能收到后台推送的通知,否则是收不到通知的,被这个坑了好长时间。。。?

以上是我在配置极光推送的时候遇到的一些问题,记录下来,希望遇到类似问题的小伙伴,可以帮助你解决遇到的问题。?

至此极光推送告一段落。

本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2016.04.22 ,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
1 条评论
热度
最新
可以,大佬,互粉一下
可以,大佬,互粉一下
回复回复点赞举报
推荐阅读
ExoPlayer漫谈之解码器复用
播放器性能的极致优化,就是要发现播放流程中一点一滴的耗时,然后分析这些耗时,并提出有效的方式解决这些耗时.了解过ExoPlayer播放器的同学们都知道ExoPlayer的解码是依赖Android系统提供的原生的解码模块,即MediaCodec来实行视频和音频解码的.
马上就说
2021/01/21
2.4K0
ExoPlayer 漫谈之解码器复用
播放器性能的极致优化,就是要发现播放流程中一点一滴的耗时,然后分析这些耗时,并提出有效的方式解决这些耗时.了解过ExoPlayer播放器的同学们都知道ExoPlayer的解码是依赖Android系统提供的原生的解码模块,即MediaCodec来实行视频和音频解码的.
码上就说
2021/01/12
2.8K0
视频播放优化浅析
随着移动终端的普及和网络的提速,以短视频为媒介的内容成了大家普遍接受和喜欢的内容消费形式。但是短视频是如何从一个视频地址到我们能看见的音视频内容呢?我们都知道播放器就是用来完成视频从地址解析到视频渲染这个流程的集合。那在我们Android平台上播放器的发展和演进过程中,有哪些实现方式?他们背后都有些什么优缺点呢?对于一个内容消费者来说,在浏览短视频的过程中,哪些性能指标是影响用户体验的呢?技术人员对于这些性能指标有哪些可做的优化?以及在快速的版本迭代中如何保证海量用户的播放体验呢?带着这些问题,本文尝试从
微信终端开发团队
2021/06/02
4.7K0
播放器秒开优化丨音视频工业实战
视频播放时的画面打开速度是播放体验中一个非常重要的指标,如果视频画面打开速度太慢,用户失去耐心可能就直接划走不看了。如果视频速度打开够快,甚至可以带来业务上的收益,字节跳动就曾给出过一份数据:对一部分型号的 Android 手机,播放首帧时长从平均 170ms 优化到 100ms,带来了 0.6% 左右的用户播放时长提升。
关键帧
2023/02/14
3.7K0
播放器秒开优化丨音视频工业实战
如何让短视频做到”秒播“?(下)
前面我们讲到,如果要让短视频做到”秒播“的话,可以从域名解析、socket buffer、Probe buffer入手,对短视频小视频源码进行优化,那么我们今天来把剩余的几个方面介绍完。
云豹通讯员
2020/03/18
2K0
如何让短视频做到”秒播“?(下)
震惊!耗时还能这么优化??
0.文末为懒人版本 1.背景介绍    在视频号项目中,允许用户上传一分钟内的编辑视频,或者选择30min内的长视频。目前来看,整个发表(视频转码+上传)的耗时还略显偏久,虽然当下转码过程都是在手机后台运行,不会阻塞用户交互,但是由于视频未发表成功,视频点赞和转发功能都被限制,对用户和业务而言,这都是很不好的体验,有值得优化的必要。 1.1分析:耗时来源 整个耗时 = 视频转码耗时 + 上传耗时 目前上传的时间取决于用户网络,这个不是本文讨论的重点,先暂时不予考虑。 那么为什么我们需要对视频进行转码呢
微信终端开发团队
2021/08/26
6K0
音视频知识图谱 2022.12
前些时间,我在知识星球上创建了一个音视频技术社群:关键帧的音视频开发圈,在这里群友们会一起做一些打卡任务。比如:周期性地整理音视频相关的面试题,汇集一份音视频面试题集锦,你可以看看这个合集:音视频面试题集锦。再比如:循序渐进地归纳总结音视频技术知识,绘制一幅音视频知识图谱,你可以看看这个合集:音视频知识图谱。
关键帧
2023/02/14
6720
音视频知识图谱 2022.12
移动端视频缓存保障与CDN调度优化
我是来自网易云信的张根宁,今天我将会站在用户的角度来跟大家探讨播放器的相关优化,也会详细阐述网易云信团队在播放器方面都做了哪些努力。
LiveVideoStack
2019/08/16
3K0
一文掌握直播技术:实时音视频采集、编码、传输与播放
从游戏、教育、电商到娱乐,直播技术的应用场景无处不在。随着移动端的网速越来越快,直播技术的普及和发展将更加迅速。
陆业聪
2024/08/19
1.3K0
一文掌握直播技术:实时音视频采集、编码、传输与播放
新知 | 腾讯云视立方播放器技术实现与应用
新知系列课程第二季来啦!我们将为大家带来全真互联时代下新的行业趋势、新的技术方向以及新的应用场景分享。本期我们邀请了腾讯云音视频技术导师——李正通,为大家分享腾讯云视立方播放器技术实现与应用。 本次分享的主要内容分为三块,一是腾讯云视立方播放器的相关技术背景,二是业务侧经典场景应用方案,三是短视频场景应用的技术实现方案。 腾讯云视立方播放器技术背景 腾讯云视立方播放器基于腾讯视频同款内核打造,完美融合了腾讯视频的能力,视频兼容性、适配能力以及播放稳定性均大幅提升,解决了系统引擎各种播放异常问题。 功能全面
腾讯云音视频
2022/12/16
2.6K0
新知 | 腾讯云视立方播放器技术实现与应用
视频直播技术干货(十二):从入门到放弃,快速学习Android端直播技术
从游戏、教育、电商到娱乐,直播技术的应用场景无处不在。随着移动端的网速越来越快,直播技术的普及和发展将更加迅速。
JackJiang
2024/10/17
3010
视频直播技术干货(十二):从入门到放弃,快速学习Android端直播技术
全民K歌推流直播Web实践
背景 ---- 2020年受到疫情的影响,大众减少了线下娱乐,将更多的时间投入到了线上活动,直播行业迎来了一个小爆发,主播注册数量与线上观众不断增长。同时,在线直播演唱作为一种全新的演出模式,受到广大网友的好评,4月以来TME承办了近20场明星在线演唱会。 随着站外直播场景业务需求逐步增多,K歌直播旧的业务代码无法满足不断增长的产品功能需求和用户体验需求。在此背景下,Web侧急需为推流直播业务提供更加可靠的技术支持。 HLS和HTTP FLV ---- 目前K歌Web使用的直播流格式主要以HLS直播流为主
QQ音乐技术团队
2020/07/07
6.1K0
质量三维论如何持续推进腾讯视频播放体验提升
大家好,我是来自腾讯视频的李大龙。今天我将从以下几个方面为大家分享腾讯视频如何以质量三维论来持续推进视频播放体验的提升。
LiveVideoStack
2019/07/01
1.1K0
质量三维论如何持续推进腾讯视频播放体验提升
FFmpeg-音视频产品不容忽视的隐形王者
目前,业界的视频播放主要有三种架构:MPC, MPlayer和VLC,占据市场90%的份额。而三个架构均使用或者融合FFmpeg的视频解码技术。FFmpeg犹如至尊魔戒,驱使视频播放领域中的万物。
用户5521279
2019/12/12
1.7K0
FFmpeg-音视频产品不容忽视的隐形王者
音视频全链路技能分析之音视频消费侧技能树
各行各业都有鄙视链。娱乐圈的,拍电影的看不上拍电视的。IT圈的,C/C++工程师看不上Java、python、php这些搞高级API的小伙子。程序员之间,“文人相轻”的事情常有,但是平心而论,技术圈的事情确实有难易之分,工作有等级,那么技能就当然有高低。技术分高低,本地就是给我们一把尺,丈量一下自己水平,掂掂自己在领域中所处的位置。
马上就说
2020/12/11
1.7K0
音视频全链路技能分析之音视频消费侧技能树
RTMP直播播放器为什么要做秒开?
2015年我们做了RTMP直播播放器没多久,就加了快速播放接口,今天就从播放器用户体验的维度,谈谈为什么要做这个:
音视频牛哥
2024/11/25
2750
从体验出发构建以增长为目标的视频服务体系
增长一直是业务的诉求,和增长相关的因素很多,内容、人群、创意玩法、性能体验等等,本次LiveVideoStackCon 2021 音视频技术大会 北京站 我们邀请到了火山引擎点播技术研发负责人——浩铭老师。本次分享聚焦在字节跳动视频通过性能体验优化促进业务增长的实践。包括在分析方法上的探讨,如何衡量和预估体验优化对业务增长的贡献,以及具体的体验优化实践分享。
LiveVideoStack
2021/12/27
7230
从体验出发构建以增长为目标的视频服务体系
HLS 和 DASH 多编解码器和封装
FuboTV 是一家美国流媒体电视服务公司,为美国、加拿大和西班牙的客户提供服务,主要专注于分发体育直播的频道。根据国家/地区的不同,Fubo 提供的频道可能包括访问 NFL、MLB、NBA、NHL、MLS、CPL 和国际足球,以及新闻、网络电视连续剧和电影。
用户1324186
2021/12/22
2.3K0
HLS 和 DASH 多编解码器和封装
腾讯云音视频播放器又上新啦!短视频秒开组件、加密画中画等功能让音视频播放更专业!
根据腾讯云音视频官方的消息显示,播放器SDK是音视频终端SDK的子产品之一,它采用“腾讯视频”同款播放内核,经过内部业务长期优化和海量服务验证,对比系统播放器性能可提升20%-50%,同时具备“臻彩视听”、精准Seek、画中画等丰富功能,为用户提供直播、点播场景下流畅稳定的音视频播放能力,覆盖泛娱乐、电商、教育等多样化音视频业务场景,支持Web/H5、iOS、Android、Flutter平台。
三掌柜
2023/12/29
1.1K4
腾讯云音视频播放器又上新啦!短视频秒开组件、加密画中画等功能让音视频播放更专业!
腾讯云实时音视频技术发展简史 — 从编解码器容错优化到云端决策系统
大家好,我是腾讯视频云终端研发负责人常青,本次分享的主题和内容是关于腾讯音视频终端这些年来的进化演化以及在客户方面的实践应用,所以“进化”也是本次分享的主题词,说到进化大家可能首先联想到的是达尔文的进化论,因此我会先以一段故事来引出之后的内容。
LiveVideoStack
2019/09/04
1.6K0
腾讯云实时音视频技术发展简史 — 从编解码器容错优化到云端决策系统
推荐阅读
相关推荐
ExoPlayer漫谈之解码器复用
更多 >
目录
  • iOS集成极光推送
    • 一、配置APNs
    • 二、集成极光推送SDK
      • sdk地址
    • 三、关于极光推送收不到后台推送的通知的问题
      • 首先,要了解一下 iOS的开发环境和生产环境。
      • 解决办法如下:
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档