android极光推送】—从客户端到后台,一文通吃
版权声明:本文为博主原创文章,未经博主允许不得转载。
目录(?)[+]
- 前记
- 推送原理浅析
- 平台说明
- 概念解释
- 推送的三种实现方式
- 客户端直接向推送服务方发送Http请求
- 项目服务器通过Http转发推送请求至推送服务方
- 项目服务端使用SDK进行功能集成
- 关于推送的种类概述
- android客户端初步实现
- 集成SDK说明
- 集成步骤
- 下载官方提供的SDK集成包
- 手动导入SDK
- 在极光的官网创建一个应用
- 编写一个MyApplication类初始化SDK
- 配置 AndroidManifestxml
- wampServer服务端配置
- 配置推送SDK
- 通过composer配置
- 1从官网下载composer
- 2关于composerphar
- 3编写composerjson文件
- 编写推送接口
- 定向推送
- android客户端改动
- 服务端改动
- 效果测试
- 结语终于完成了
- 前记
- 推送原理浅析
- 平台说明
- 概念解释
- 推送的三种实现方式
- 客户端直接向推送服务方发送Http请求
- 项目服务器通过Http转发推送请求至推送服务方
- 项目服务端使用SDK进行功能集成
- 关于推送的种类概述
- android客户端初步实现
- 集成SDK说明
- 集成步骤
- 1下载官方提供的SDK集成包
- 2手动导入SDK
- 3在极光的官网创建一个应用
- 4编写一个MyApplication类初始化SDK
- 5配置 AndroidManifestxml
- wampServer服务端配置
- 配置推送SDK
- 通过composer配置
- 1从官网下载composer
- 2关于composerphar
- 3编写composerjson文件
- 编写推送接口
- 定向推送
- android客户端改动
- 服务端改动
- 效果测试
- 结语终于完成了
Java Web方向发展,Android得放下一段时间(不过还是会利用空余时间坚持写文章~)。
推送功能是app很常用的一个功能,目前能够实现推送的第三方平台也有不少,比如友盟、极光、信鸽等等,总之只要百度一下android推送关键字,就能看到很多的厂家。
这篇博文选择的是极光推送(老板选择的平台…),本文将从android客户端和服务端实现推送,让大家对推送的全流程有一个完整的了解。
极光推送。
数据库中。这里的项目服务器就是指安装并开启了wampServer的本机。
推送请求
通常情况下,我们会把跟推送相关的内容进行封装(Json的方式),里面会包含推送的内容(alert)、标题(title)、平台(platform)等,详细的选项可以参考推送服务方官网的文档,当然,推送请求的内容会因推送平台的不同而有所差异,这里以采用的推送服务方的官方文档为主。
客户端
即发出推送请求或者接受推送消息的一方,
https://api.jpush.cn/v3/pus
那么在客户端,直接使用Http,封装推送请求所需要的参数,并向这个地址发送请求
示意图:
从上图可以看到,请求直接发送给推送方,相关所有参数都需要在客户端操作
优点:直接使用推送方的服务器,所以无需配置,调用方便快捷
缺点:客户端封装大量参数,尤其在android和iOS开发同时存在时,微小的变动可能意味着两边大量代码的修改,不利于后期维护
官方文档。
当然随着官网集成包的更新,可能我现在在博文里写的方法会过时,所以一切还是以官网的内容为准。
好了,废话到此位置。
客户端 SDK 下载
然后解压缩,看到如下目录:
同时我们在自己项目的src/main目录下面新建一个文件夹jniLibs,将SDK包libs下面的CPU类型放入我们自己创建的jniLibs里
PHP向推送方直接发送HTTP请求。
Composer中文网相关查看教程。
Windows下载
Windows下载
一路next,安装完毕后在cmd里面输入composer
即说明下载成功。
Git,那么直接右键push目录,点击git brash here 就能很方便地打开dos界面。
键入下载的命令:
composer install
或者
php composer.phar install
二者的区别请见第二点
在解释上面问题之前,需要讲讲composer.lock这个文件
在安装完所有需要的包之后,composer会生成一张标准的包版本的文件在composer.lock文件中。这将锁定所有包的版本。
使用composer.lock(当然是和composer.json一起)来控制你的项目的版本
这一点非常的重要,我们使用install命令来处理的时候,它首先会判断composer.lock文件是否存在,如果存在,将会下载相对应的版本(不会在于composer.json里面的配置),这意味着任何下载项目的人都将会得到一样的版本。
如果不存在composer.lock,composer将会通过composer.json来读取需要的包和相对的版本,然后创建composer.lock文件
这样子就可以在你的包有新的版本之后,你不会自动更新了,升级到新的版本,使用update命令即可,这样子就能获取最新版本的包并且也更新了你的composer.lock文件。
所以,第一次的话,使用install命令,之后的使用updata命令就好了。
全部下载完成后,我们的当前的项目目录应该是这个样子的。
http://localhost/push/test.php
如果调用成功,则说明接口正确~~