统一推送联盟
成立之后,各大厂商都推出了自己的推送服务通道,主要目的是为了建立 Android 推送生态。目前小米,华为,魅族,OPPO,vivo 等厂商都推出了系统级别的推送通道,避免了各家 APP 都使用各自的长链接来维持推送通道、需要应用进程处于存活状态,而造成手机耗电、耗内存等问题。
开发者使用 ZIM 提供的“离线推送”功能之前,请参考本文,接入 OPPO 厂商的离线推送通道。
在接入 OPPO
的离线推送通道之前,请确保:
已集成最新版本的 ZIM SDK,详情请参考 快速开始 - 实现基本收发消息 的 “3 集成 SDK”。
已完成如下步骤:
在您项目根目录的主 gradle 中配置 mavenCentral 支持。(新建项目默认已支持。)
buildscript {
repositories {
mavenCentral()
}
}
allprojects {
repositories {
mavenCentral()
}
}
下载 OPPO 推送 SDK,并将其拷贝到您项目的的 “app/libs” 目录下。
在项目的应用级 “build.gradle” 文件中添加 aar 依赖。
dependencies {
implementation files('libs/com.heytap.msp_3.5.2-release-20240516-416001043.aar') // 版本为 3.5.2 的 OPPO 推送 SDK
implementation 'im.zego:zpns-oppo:2.7.0' // 获取用于 OPPO 推送服务的 ZPNs 库
//以下为 OPPO 推送 SDK 依赖的三方库
implementation 'com.google.code.gson:gson:2.10.1'
implementation 'commons-codec:commons-codec:1.6'
implementation 'androidx.annotation:annotation:1.1.0'
}
防止混淆代码
在 “proguard-rules.pro” 文件中,为 OPPO 推送 SDK 添加 -keep 类的配置,这样可以防止混淆 OPPO 推送 SDK 公共类名称:
-keep public class * extends android.app.Service
-keep class com.heytap.msp.** { *;}
以上配置完成后,请在 ZEGO 控制台 自助配置 ZIM 离线推送证书(详情请参考 项目管理 - 即时通讯 - 离线推送配置),若无法配置,请联系 ZEGO 技术支持处理。
OPPO 推送服务将消息推送通道分为两种,公信和私信,具体限制数量规则如下,详情请参见 OPPO 官网文档 推送服务受限说明。
通知栏推送权限 | 应用要求 | 消息推送量(条/日) | ||
---|---|---|---|---|
消息推送通道 | 累计用户数 | 可推送总量 | ||
正式权限 |
应用已上架 OPPO 软件商店 |
公信 |
<50000 |
100000 |
≥50000 |
累计用户×2 |
|||
私信 |
不限量。 |
|||
测试权限 |
应用未上架 OPPO 软件商店 |
消息推送通道 | 可推送总量 | |
公信 |
1000 |
|||
私信 |
不支持申请。 |
应用类别 | 单用户推送限制(条/日) | |
---|---|---|
公信消息 | 私信消息 | |
新闻类(三级分类为新闻类) |
5条 |
不限量。 |
其他应用类型 |
2条 |
不限量。 |
您需要通过创建私信通道,才能无限制地向 OPPO 设备推送消息,详情请参考 OPPO 官网文档 创建私信通道。
邮件申请完成后,您需要在 OPPO 推送平台上登记该通道,并将通道对应属性设置为“私信”。
完成上述申请后,请参考 resourcesID 说明 - 配置,在 ZEGO 控制台上使用如下信息配置 resourcesID:
resourcesID
:由您自定义,不超过 32 个字符。
channel_id
:渠道 ID。
建议 resourcesID
能够直接反映推送目的。例如,目的是打电话,就可以命名为 call_resource
。
在发起推送时,可以指定使用该 Resource ID 对应的通道进行推送。您需要将配置的 Resource ID 填写到 ZIMPushConfig 中,实现代码请参考 实现离线推送 - 发送单聊消息时使用离线推送功能。
联系我们
文档反馈