统一推送联盟
成立之后,各大厂商都推出了自己的推送服务通道,主要目的是为了建立 Android 推送生态。目前小米,华为,魅族,OPPO,vivo 等厂商都推出了系统级别的推送通道,避免了各家 APP 都使用各自的长链接来维持推送通道、需要应用进程处于存活状态,而造成手机耗电、耗内存等问题。
开发者使用 ZIM 提供的“离线推送”功能之前,请参考本文,接入华为厂商的离线推送通道。
在接入 华为
的离线推送通道之前,请确保:
已集成最新版本的 ZIM SDK,详情请参考 快速开始 - 实现基本收发消息 的 “3 集成 SDK”。
已完成如下步骤:
下载华为服务配置文件。
登录 华为开发者后台 ,在 “管理中心 > PUSH > 选择您的应用 > 项目设置 > 常规”,找到 “agconnect-servics.json” 文件,点击下载,如下图:
配置工程。
将下载好的 “agconnect-servics.json” 文件,放到自己项目的 “app” 目录下,如下图:
配置 HMS Core SDK 与 mavenCentral 的 Maven 仓地址。
打开项目根目录下的 ”build.gradle“ 文件。
在 “buildscript > repositories” 中,配置 HMS Core SDK 和 mavenCentral 的 Maven 仓地址。
在 “allprojects > repositories” 中,配置 HMS Core SDK 和 mavenCentral 的 Maven 仓地址。
如果 App 中添加了 “agconnect-services.json” 文件,则需要在 “buildscript > dependencies” 中增加 agcp 插件配置。
buildscript {
repositories {
google()
jcenter()
// 配置 HMS Core SDK 的 Maven 仓地址。
maven {url 'https://developer.huawei.com/repo/'}
// 配置 mavenCentral
mavenCentral()
}
dependencies {
...
// 增加 agcp 插件配置。
classpath 'com.huawei.agconnect:agcp:1.7.1.300'
}
}
allprojects {
repositories {
google()
jcenter()
// 配置 HMS Core SDK 的 Maven 仓地址。
maven {url 'https://developer.huawei.com/repo/'}
mavenCentral()
}
}
在应用级别的 “build.gradle” 文件中添加 agcp 插件配置。
在文件头部声明下一行添加如下代码。
apply plugin: 'com.huawei.agconnect'
在 plugins
节点中添加如下配置。
plugins {
id 'com.android.application'
// 添加如下配置
id 'com.huawei.agconnect'
}
集成 SDK。
打开应用级的 “build.gradle” 文件,在 “dependencies” 节点中添加如下编译依赖。
dependencies {
implementation 'com.huawei.hms:push:6.12.0.300' // 华为推送 SDK
implementation 'im.zego:zpns-huawei:2.7.0' // 获取用于华为推送服务的 ZPNs 库
}
防止混淆代码
在 “proguard-rules.pro” 文件中,为 HMS Core SDK 添加 -keep 类的配置,这样可以防止混淆 HMS Core SDK 公共类名称:
-ignorewarnings
-keepattributes *Annotation*
-keepattributes Exceptions
-keepattributes InnerClasses
-keepattributes Signature
-keepattributes SourceFile,LineNumberTable
-keep class com.huawei.hianalytics.**{*;}
-keep class com.huawei.updatesdk.**{*;}
-keep class com.huawei.hms.**{*;}
添加完上述代码后,如果您需要了解更多混淆相关的内容,请查看华为官方文档 配置混淆脚本。
以上配置完成后,请在 ZEGO 控制台 自助配置 ZIM 离线推送证书(详情请参考 项目管理 - 即时通讯 - 离线推送配置),若无法配置,请联系 ZEGO 技术支持处理。
华为推送服务将通知消息分为资讯营销、服务与通讯两种。资讯营销类消息的每日推送数量有上限,服务与通讯类消息每日推送数量无上限,详情请参考华为官网文档 推送数量管理细则。
消息分类 | 类型说明 | 推送数量限制 |
---|---|---|
资讯营销类消息 |
|
|
服务与通讯类消息 |
|
无限制。 |
华为可通过自分类权益来实现不限量推送,开发者需要在华为控制台申请自分类权益,请参考华为官方文档 消息分类标准 - 自分类权益申请。
完成上述申请后,请参考 resourcesID 说明,在 ZEGO 控制台上使用如下信息配置 resourcesID:
resourcesID
:由您自定义,不超过 32 个字符)。
category
:推送类别。
target_user_type
:用户类型:
建议 resourcesID
能够直接反映推送目的。例如,目的是打电话,就可以命名为 call_resource
。
在发起推送时,可以指定使用该 resourcesID 对应的通道进行推送。您需要将配置的 Resource ID 填写到 ZIMPushConfig 中,实现代码请参考 实现离线推送 - 发送单聊消息时使用离线推送功能。
联系我们
文档反馈