前言:自从上个星期开始整这个推送,弄了差不多一个星期,今天终于给整好了,因此现在来记录这段"奇妙"的旅程. 我们公司使用的消息推送是用的第三方--个推,这里不得不说一下,个推的技术人员还是蛮热心的,一直在帮助我排查问题,问题终于解决了,感谢感谢!

步骤及问题排查:

1.参照开发文档,集成SDK ,这里就不一一介绍了.(注意,个推的ios推送只能使用透传)

2.创建证书.苹果的推送证书分为开发证书(测试用)和生产证书(上线用).这里需要注意的就是,创建证书之前先必须打开证书的push 服务,

而且你得要先创建开发证书,然后再去创建生产证书,不然的话也是无法正常使用的.证书创建好了之后别忘了重新生成描述文件,检查一下描述文件是否开启了推送.

补充:创建好了证书之后,可以先到平台上测试一下证书是否正确,如果测试显示"测试可用",就说明没有问题;如果是其他,说明证书创建有问题,建议删除重新生成.

3.测试.测试有两种方式:个推平台跟公司后台提供的接口.

(1)个推平台测试如图:

如果你的接到了推送消息,,那么good ,你已经接近成功了.

如果没有,首先你得检查一下该应用是否允许推送.(提醒样式应该选横幅)

基本上允许接收通知的话就会接收到推送.(苹果是有系统自带的声音提醒的,如果没有,你得检查一下你的声音设置,以及看一下是否开启了勿扰模式什么的. 其实我啰嗦这么多,是因为我自己有中招,哎......)

(2)公司后台测试的话,这个得找后台要了. 如果平台上推送成功,但是后台接口测试推送不成功的话,那就要问一下后台,是否集成了IOS的透传模板.(如果能接收到在线消息,离线消息接收不到的话,99.9%是因为后台的原因.我在开发的时候就出现了这个情况,后台以为android和IOS的方法是通用的,就只集成一个,结果android能正常接收到推送,ios不能.这是因为离线还是走的苹果的APNS,在线的时候才走个推自己的流程,而后台并没有启动APNS服务,导致只能接收在线消息,离线消息接不到.)

4.处理接收到的推送

关于角标:

[GeTuiSdk setBadge:_numb];

[[UIApplication sharedApplication] setApplicationIconBadgeNumber:_numb];  //可用全局变量累加消息

点击图标或者通知栏进入程序后,清空角标:

[GeTuiSdk resetBadge];

[[UIApplication sharedApplication] setApplicationIconBadgeNumber:0];

[[UIApplication sharedApplication] cancelAllLocalNotifications];

提示音:可以使用系统自带的,也可播放音频

NSString *path = [[NSBundle mainBundle]pathForResource:@"sound" ofType:@"wav"];

// 2 将路径字符串转换成url,从本地读取文件,需要使用fileURL

NSURL *url = [NSURL fileURLWithPath:path];

// 3 初始化音频播放器

_player = [[AVAudioPlayer alloc]initWithContentsOfURL:url error:nil];

// 4 设置循环播放

// 循环次数=0,声音会播放一次

// 循环次数=1,声音会播放2次

// 循环次数小于0,会无限循环播放

[_player setNumberOfLoops:0];

// 5 准备播放

[_player prepareToPlay];

[_player setVolume:0.9f];

[_player play];

在进入应用的时候停止播放

[_player stop];

5. 发布. 发布之前,你需要在平台上面将开发证书改成生产证书.然后需要在xcode里面将描述文件改成你之前创建的,开启了推送功能的那个.然后打包上线.

如果测试的时候推送正常,上线成功之后发现推送不了,那么你得检查一下发布之后的版本deviceToken 是否生成了,如果没有,那么十有八九是你证书没有创建好,或者是打包的时候描述文件没有配置好.

补充:上线之后的app,如何查看控制台打印的消息,-->先将手机连接电脑,打开xcode ,状态栏window->devices->选中你的手机,就可以查看日志里面有没有生成deviceToken了.

注意:上线成功之后平台上的证书就不能随意更改啦,不然可能会影响线上用户的使用的.

iOS 之消息推送(个推)---个人小结的更多相关文章

  1. IOS中程序如何进行推送消息(本地推送,远程推送)2(上)

    未看过本地推送的,可以提前看一下本地推送. http://www.cnblogs.com/wolfhous/p/5135711.html =============================== ...

  2. C# 数据推送 实时数据推送 轻量级消息订阅发布 多级消息推送 分布式推送

    前言 本文将使用一个NuGet公开的组件技术来实现数据订阅推送功能,由服务器进行推送数据,客户端订阅指定的数据后,即可以接收服务器推送过来的数据,包含了自动重连功能,使用非常方便 nuget地址:ht ...

  3. atitit.web 推送实现方案集合(2)---百度云,jpush 极光推送 ,个推的选型比较.o99

    atitit.web 推送实现方案集合(2)---百度云,jpush 极光推送 ,个推的选型比较.o99 1.1. 云推送有推送次数或频率的限制吗? 1 1.2. 推送的消息长度 1 1.3. 离线消 ...

  4. java SDK服务端推送 --极光推送(JPush)

    网址:https://blog.csdn.net/duyusean/article/details/86581475 消息推送在APP应用中越来越普遍,来记录一下项目中用到的一种推送方式,对于Andr ...

  5. Android实现点击通知栏后,先启动应用再打开目标Activity ,极光推送等推送的也可以参考一下(转)

    我因为项目中集成了极光推送,推送的通知栏点开需要确定进入哪个界面就参考了这边文章,感谢作者的无私. 标签: 情况简述 在开发Android app的过程中,遇到这样一个需求:app中启动一个Servi ...

  6. SEO教程:快速增加360搜索引擎收录,360自动推送批量推送版

    上次改编了一下百度的JS推送代码,实现了批量推送 传送门>>>百度链接提交-js代码推送批量推送版 这次我们来研究360js自动推送代码. <script> (funct ...

  7. IOS中程序如何进行推送消息(本地推送,远程推送)

    [1]-------------什么是推送消息? 我就以一张图解释------------ [2]-----------IOS程序中如何进行本地推送?----------- 2.1,先征求用户同意 1 ...

  8. iOS的推送机制APNs:本地推送&远程推送

    本地推送: 本地推送主要应用在备忘录,闹钟等本地的,基于时间定时的消息提醒.本篇不做详细描述. 远程推送:APNS(苹果推送通知服务) iOS远程推送机制的原理及流程: 注册推送(橙色部分):若该Ap ...

  9. iOS推送 (百度推送)

    近期在使用推送,所以与大家分享一下我所遇到的问题,与解决这个问题的方法.! 1.首先生成CertificateSigningRequest文件. 点击钥匙串訪问-->从证书颁发机构请求证书--& ...

随机推荐

  1. Angular杂谈系列1-如何在Angular2中使用jQuery及其插件

    jQuery,让我们对dom的操作更加便捷.由于其易用性和可扩展性,jQuer也迅速风靡全球,各种插件也是目不暇接. 我相信很多人并不能直接远离jQuery去做前端,因为它太好用了,我们以前做的东西大 ...

  2. java基础集合经典训练题

    第一题:要求产生10个随机的字符串,每一个字符串互相不重复,每一个字符串中组成的字符(a-zA-Z0-9)也不相同,每个字符串长度为10; 分析:*1.看到这个题目,或许你脑海中会想到很多方法,比如判 ...

  3. ABP文档 - 导航

    文档目录 本节内容: 创建菜单 注册导航供应器 显示菜单 每个web应用都有一些菜单用来在页面/屏幕之间导航,ABP提供了一个通用的基础框架创建并显示菜单给用户. 创建菜单 一个应用可能由不同模块组成 ...

  4. 算法与数据结构(十一) 平衡二叉树(AVL树)

    今天的博客是在上一篇博客的基础上进行的延伸.上一篇博客我们主要聊了二叉排序树,详情请戳<二叉排序树的查找.插入与删除>.本篇博客我们就在二叉排序树的基础上来聊聊平衡二叉树,也叫AVL树,A ...

  5. 如何利用ansible callback插件对执行结果进行解析

    最近在写一个批量巡检工具,利用ansible将脚本推到各个机器上执行,然后将执行的结果以json格式返回来. 如下所示: # ansible node2 -m script -a /root/pyth ...

  6. [原] Cgroup CPU, Blkio 测试

    关于Cgroup的简单测试 [toc] 简单介绍Cgroup (如果对cgroup熟悉可以忽略) 一般情况下,cgroup挂载到一个虚拟文件目录,然后可以通过文件系统的API对其操作. ># m ...

  7. QQ空间动态爬虫

    作者:虚静 链接:https://zhuanlan.zhihu.com/p/24656161 来源:知乎 著作权归作者所有.商业转载请联系作者获得授权,非商业转载请注明出处. 先说明几件事: 题目的意 ...

  8. SAP CRM 显示消息/在消息中进行导航

    向用户展示消息,在任何软件中都是十分重要的. 在SAP CRM WEB UI中展示消息,不是一项很难的任务,只需要创建消息并在之后调用方法来显示它 消息类和消息号: 我在SE91中创建了如下的消息类和 ...

  9. Supermap iCloudManager -负载均衡

    Supermap icm负载均衡理解: 应用场景:地图出图 子节点1和子节点2中的服务保持一致,一般情况下设置的是匿名用户通过nginx访问服务信息,所以不需要登录. 1.通过nginx分发请求,(轮 ...

  10. asp.net core 负载均衡集群搭建(centos7+nginx+supervisor+kestrel)

    概述 本文目的是搭建三台asp.net core 集群, 并配上 nginx做负载均衡   首先准备要运行的源码 http://pan.baidu.com/s/1c20x0bA 准备三台服务器(或则虚 ...