9.4. 消息推送

本教程最新版为 9.x,当前版本已放弃维护,请阅读最新版本!

消息推送

file

消息推送是 APP 开发中非常重要的功能,可以让不在前台运行的 APP,及时进行消息通知,应用于新闻内容、促销活动、产品信息、版本更新提醒、订单状态提醒等多种场景。

因为我们没有客户端的配合,不方便测试,这一节我们主要以 iOS 为例,介绍一下消息推送的机制,以及实现一些基础代码。

推送原理

APNs (英文全称:Apple Push Notification service),即苹果推送通知服务。

消息推送分为本地通知和远程通知,本地通知是由本地应用触发的,是基于时间行为的一种通知形式,例如闹钟定时、待办事项提醒,又或者一个应用在一段时候后不使用通常会提示用户使用此应用等都是本地通知,因为本地通知没有服务器的参与,所以我们在这里不展开讨论,主要来了解一下远程通知。

远程通知主要步骤为:

  • 在 APNs 下载 push 证书,设置在服务器中
  • APP 获取 APNs 分配的 deviceToken (应用的唯一标识,不同设备,不同的应用 deviceToken 都会不同),提交给服务器,服务器记录下 deviceToken
  • ...

本文章首发在 LearnKu.com 网站上。

为了保证课程的高品质,我们需要对课程进行收费。付费后 才能观看剩余内容。 购买

上一篇 下一篇
《L01 基础入门》
我们将带你从零开发一个项目并部署到线上,本课程教授 Web 开发中专业、实用的技能,如 Git 工作流、Laravel Mix 前端工作流等。
《G01 Go 实战入门》
从零开始带你一步步开发一个 Go 博客项目,让你在最短的时间内学会使用 Go 进行编码。项目结构很大程度上参考了 Laravel。
贡献者:4
讨论数量: 22

白衣落水
`eloquent.created`的资料在哪?
4 个点赞 | 2 个回复 | 问答 | 课程版本 5.5
discus2013
Laravel 中 Observer 和 Listener 的比较
3 个点赞 | 5 个回复 | 问答 | 课程版本 5.5
剑尘
推送章节有点不理解?????
2 个点赞 | 7 个回复 | 问答 | 课程版本 5.5
putixin
获取个人信息错误?
1 个点赞 | 6 个回复 | 问答 | 课程版本 5.5
Slairmy
增加事件监听器是否是为了降低代码的耦合?
1 个点赞 | 2 个回复 | 问答 | 课程版本 5.5
stefen
消息通知?
1 个点赞 | 1 个回复 | 问答 | 课程版本 5.5
zhangatle
添加消息推送后,添加回复出错,怎么解决?
0 个点赞 | 6 个回复 | 问答 | 课程版本 5.5
YUMI_Ho
JPush\Client 构造器我载入配置参数了,为啥还报错?
0 个点赞 | 6 个回复 | 问答 | 课程版本 5.5
SeanSolomon
无法更新 registration_id
0 个点赞 | 4 个回复 | 问答 | 课程版本 6.x
jxdr
Composer require jpush/jpush 载不下来,
0 个点赞 | 3 个回复 | 分享 | 课程版本 6.x
gyp719
这个 Listeners 类里面没有执行
0 个点赞 | 2 个回复 | 问答 | 课程版本 6.x
Athos
添加推送之后回复话题报错
0 个点赞 | 2 个回复 | 问答 | 课程版本 5.5
yanyin
事件->通知->事件->通知,是不是太麻烦
0 个点赞 | 2 个回复 | 分享 | 课程版本 5.7
Krisji
registration_id
0 个点赞 | 2 个回复 | 问答 | 课程版本 5.5
putixin
DatabaseNotification 里的内容需要我们手动创建吗?
0 个点赞 | 2 个回复 | 问答 | 课程版本 5.5
MArtian
无法安装 Jpush
0 个点赞 | 1 个回复 | 问答 | 课程版本 6.x
mostwin
不同用户先后登录同一设备,如何记录设备号?如何发 push?
0 个点赞 | 1 个回复 | 分享 | 课程版本 5.8
YUMI_Ho
Expected response code 250 but got code "", with message ""?
0 个点赞 | 1 个回复 | 问答 | 课程版本 5.5
Code_Er
如何去测试极光推送
0 个点赞 | 0 个回复 | 问答 | 课程版本 6.x
gyp719
消息推送一直报错
0 个点赞 | 0 个回复 | 问答 | 课程版本 6.x