1.在极光平台注册开发者账号
2.创建应用 头像 -》 服务中心-》开发者平台-》概览-》创建应用
3.maven自动集成
(1)项目build.gradle配置mavenCentral
buildscript {
repositories {
jcenter()
mavenCentral()
}
......
}
allprojects {
repositories {
jcenter()
mavenCentral()
}
}
(2)在module build.gradle中添加依赖和 AndroidManifest 的替换变量
android {
......
defaultConfig {
applicationId "com.xxx.xxx" //JPush 上注册的包名.
......
ndk {
//选择要添加的对应 cpu 类型的 .so 库。
abiFilters 'armeabi', 'armeabi-v7a', 'arm64-v8a'
// 还可以添加 'x86', 'x86_64', 'mips', 'mips64'
}
manifestPlaceholders = [
JPUSH_PKGNAME : applicationId,
JPUSH_APPKEY : "你的 Appkey ", //JPush 上注册的包名对应的 Appkey.
JPUSH_CHANNEL : "developer-default", //暂时填写默认值即可.
]
......
}
......
}
dependencies {
......
implementation 'cn.jiguang.sdk:jpush:4.2.4' // 此处以JPush 4.2.4 版本为例。
implementation 'cn.jiguang.sdk:jcore:2.9.0' // 此处以JCore 2.9.0 版本为例。
}
appkey在极光的企业应用运营平台的 应用设置 查看
(3)如果你使用的 JCore 是 2.0.0 及以上的版本,需要额外在 Androidmanifest 中配置一个Service,以在更多手机平台上获得更稳定的支持,示例如下。(JCore1.x版本不需要)
....
....
(4)从JPush3.0.7开始,需要配置继承JPushMessageReceiver的广播
....
....
4.开始测试
创建一个推送通知发送
如果手机接收到了发送的通知 说明集成极光sdk成功,但是此时的推送通知只能通过极光通道送达
5.集成厂商通道
为什么?
在国内 Android 生态中,推送通道都是由终端与云端之间的长链接来维持,严重依赖于应用进程的存活状态。如今一些手机厂家会在自家 rom 中做系统级别的推送通道,再由系统分发给各个 app,以此提高在自家 rom 上的推送送达率。
(1)华为通道
<1>在华为平台创建应用https://developer.huawei.com/cn/
管理中心->AppGallery Connect->我的项目->创建项目
创建完成之后 在项目设置中可以看到我们需要的配置信息
创建的过程中注意,华为这边的包名要与极光后台的保持一致 ,填写必要信息即可,不用上架,填写完保存就行。
注意:SHA256证书指纹是必填的,指纹证书是在终端采用keytool -list -v -keystore keystorefileName
windos+r 输入cmd打开黑窗口
定位到你keytool目录下
例如
输入keytool -list -v -keystore jks文件地址 命令
例如
输入密码后得到jks文件信息
<3>下载该应用的 agconnect-services.json 配置文件并添加到应用的 module 目录下。
<4>在项目 build.gradle 中添加规则,以纳入 HMS 服务插件 和 华为 的 Maven 代码库,可根据华为开发者联盟发布的版本更新选择最新版本:
buildscript {
repositories {
google()
jcenter()
mavenCentral()
maven {url 'http://developer.huawei.com/repo/'}
}
dependencies {
classpath 'com.huawei.agconnect:agcp:1.4.2.300'
}
}
allprojects {
repositories {
google()
jcenter()
mavenCentral()
maven {url 'http://developer.huawei.com/repo/'}
}
}
<5>在应用 module 的 build.gradle 文件底部添加 apply plugin 代码行,以启用 gradle 插件:
// ADD THIS AT THE TOP
apply plugin: 'com.huawei.agconnect'
<6> module的build.gradle添加依赖
dependencies {
implementation 'com.huawei.hms:push:5.3.0.301'
//引入极光-华为插件,如果采用此配置,无需拷贝jpush-android-plugin-huawei-v4.x.x.jar文件,也无需配置cn.jpush.android.service.PluginHuaweiPlatformsService组件
implementation 'cn.jiguang.sdk.plugin:huawei:4.1.5'
}
具体华为依赖版本问题详情请查看官方文档
<7>在build.gradle中配置在华为后台添加的指纹证书对应的签名
生成或找到一个jks文件 将文件信息配置到build.gradle中
signingConfigs {
release {
storeFile file("release.keystore")//签名文件的path
storePassword "123456"
keyAlias "android.keystore"
keyPassword "123456"
}
}
<8>在极光后台配置华为应用信息
配置完之后一定要启用,否则不能发送厂商通道推送通知
至此 华为厂商通道集成完毕 可以在华为手机上清除后台app 发送一个厂商通道优先的消息进行测试
(2)小米厂商通道
<1>确认android studio的 Project 根目录的主 gradle 中配置了mavenCentral支持。(新建project默认配置就支持)
buildscript {
repositories {
jcenter()
mavenCentral()
}
......
}
allprojets {
repositories {
jcenter()
mavenCentral()
}
}
<2>在应用 module 的 gradle 中 dependencies 节点添加依赖:
dependencies {
implementation 'cn.jiguang.sdk.plugin:xiaomi:4.x.x'//版本号和对应的JPush版本号相同
}
<3>在应用 module 的 gradle 中 defaultConfig 节点添加如下代码:
注意:不能将变量前缀去掉 正确实例: MI-1234567891234
android {
....
defaultConfig {
...
manifestPlaceholders = [
// 设置manifest.xml中的变量
XIAOMI_APPKEY : "MI-您的应用对应的小米的APPKEY", // 小米平台注册的appkey,注意不要将前缀去掉 MI-appkey
XIAOMI_APPID : "MI-您的应用对应的小米的APPID", // 小米平台注册的appid,注意不要将前缀去掉 MI-appid
]
}
...
}
<4>由于 MiPush 的 regid 只能在主进程获取,非主进程获取到的regid为空,所以极光的 PushReceiver应寄宿于应用主进程, 需要在AndroidManifest.xml中将 PushReceiver 的分离进程配置去掉。配置示例如下:
这两个厂商比较有代表性,其他厂商就大同小异了