跳到主要内容

集成 OPPO 推送

按照本指南集成OPPO 推送客户端,融云 SDK 支持从 OPPO 推送服务收取推送。

提示
  • 并非所有的 OPPO 手机都支持 OPPO 推送。OPPO 推送目前支持 ColorOS 3.1 及以上的系统的OPPO的机型,一加5/5t及以上机型,realme 所有机型。详见 OPPO 推送服务文档 业务功能使用问题
  • 在不支持 OPPO 推送的 OPPO 手机上会使用融云默认推送。

在集成第三方推送前,请确保已在融云控制台配置 Android 应用 ID。详见推送集成概述

在融云控制台配置 OPPO 推送

如果想通过 OPPO 推送接收融云即时通讯服务的推送通知,您需要在融云控制台上提供您的 OPPO 推送应用的详细信息。

  1. 前往 OPPO 推送运营平台配置管理 > 应用配置中获取推送凭证,包括 AppKeyAppSecretMasterSecret

    提示
    • 如果没有 OPPO 开发者账号,或尚未创建应用,或尚未开启推送服务权限,请先在 OPPO 开发者平台上创建账号、应用并开启推送服务权限。详见 OPPO 开发者文档推送服务开启指南
    • OPPO 要求开启推送服务需要注册成为 OPPO 企业开发者,详情请参考 OPPO企业开发者帐号注册流程

    (width=600)

    OPPO 推送凭证用途如下:

    • AppKey:OPPO 应用的身份标识。客户端以及在融云控制台配置 OPPO 推送时均需使用。
    • AppSecret:客户端集成 OPPO 推送 SDK 时使用。
    • MasterSecret(即 AppServerSecret):在融云控制台配置 OPPO 推送服务凭证时使用。
  2. 打开融云控制台,在应用标识页面点击设置推送,找到 Android > OPPO 推送,填入上一步获取的 App KeyMaster Secret

    (height=400)

  3. (可选)配置推送通知标题。设置默认的推送通知标题。一般情况下客户端发送消息转 Push 时不使用此标题设置。在调用融云服务端 API /push.json/push/user.json/push/custom.json 接口推送通知时,如未传入通知标题,则使用该处设置的标题。从服务端发消息时,如果发送用户 ID 在融云服务端没有用户名,也会使用此 “推送通知标题”。

  4. 配置推送通道类型。OPPO 官方开发者文档说明如下:为了改善终端用户的通知体验,营造良好可持续的推送生态,OPPO推送对各个APP的push消息数量进行了限量管控;同时针对即时聊天/系统提醒等push需求可以申请走私信通道(该通道不限量)。

    提示

    融云服务端默认使用的是 OPPO 公信推送通道,单日推送消息次数受限,总的推送次数用完后,当日将无法再给用户推送内容。目前单日推送数量为:累计注册用户数*2。如需使用不受推送数量限制的私信推送通道,可参考 OPPO 文档推送私信通道申请。申请私信通道完成后,请返回融云控制台填入私信推送通道的 channel Id。

  5. 保存设置。所有设置 30 分钟后生效。

您已完成需要融云控制台 OPPO 推送配置的全部内容。现在可以设置客户端集成。

配置客户端接收 OPPO 推送

  1. 首先,需要将 OPPO 推送客户端 SDK 添加到您的 Android 项目。您需要手动下载 OPPO 推送客户端 SDK 并加到项目中。

    提示
    • 如果您项目使用的 IMLib/IMKit SDK 版本大于等于 5.2.1,必须使用 OPPO 推送客户端 SDK 3.0.0 或更新版本。
    • 如果您项目使用的 IMLib/IMKit SDK 版本大于等于 5.6.8,必须使用 OPPO 推送客户端 SDK 3.4.0 或更新版本。
    • 融云官网 SDK 下载页提供 OPPO 推送客户端 SDK 下载。在页面勾选第三方推送后,下载 zip 文件。在解压后的文件目录中找到 pushlibs 下的 OPPO 推送客户端 SDK 文件(push-xxx.aar,3.4.0)。拷贝 .aar 文件到 app 的 libs 目录下。

      (width=600)

    • 如需获取最新版 OPPO 推送客户端 SDK,可以从 OPPO 直接获取 aar 文件。参见 OPPO 官方开发者文档 Android SDK 集成

  2. 在项目中导入 OPPO 推送 aar 包。在 App 的 build.gradle 中添加依赖:

    dependencies {
    ...
    implementation(name: 'push-3.4.0', ext: 'aar')
    //以下依赖都需要添加
    implementation 'com.google.code.gson:gson:2.6.2'
    implementation 'commons-codec:commons-codec:1.6'
    implementation 'androidx.annotation:annotation:1.1.0'
    ...
    }

注册 OPPO 推送的服务

在主工程的 AndroidManifest.xml 中添加 OPPO 推送配置需要的 service:

<service
android:name="com.heytap.msp.push.service.CompatibleDataMessageCallbackService"
android:exported="true"
android:permission="com.coloros.mcs.permission.SEND_MCS_MESSAGE" >
<intent-filter>
<action android:name="com.coloros.mcs.action.RECEIVE_MCS_MESSAGE" />
</intent-filter>
</service>
<service
android:name="com.heytap.msp.push.service.DataMessageCallbackService"
android:exported="true"
android:permission="com.heytap.mcs.permission.SEND_PUSH_MESSAGE" >
<intent-filter>
<action android:name="com.heytap.mcs.action.RECEIVE_MCS_MESSAGE" />
<action android:name="com.heytap.msp.push.RECEIVE_MCS_MESSAGE" />
</intent-filter>
</service>

关于权限要求的说明,可参见 OPPO 官方开发者文档 SDK 数据安全说明

混淆配置

如果您的应用使用了混淆,您可以使用下面的代码混淆配置:

-keep public class * extends android.app.Service
-keep class com.heytap.msp.** { *;}

启用 OPPO 推送服务

请在初始化融云 SDK 之前,将 OPPO 的 App KeyApp Secret 添加到 PushConfig,并提供给 SDK。融云 SDK 将向 OPPO 推送服务注册、并将获取的 OPPO 推送 Token 上报给融云服务端。

PushConfig 为所有推送配置相关的入口类。

PushConfig.Builder builder = new PushConfig.Builder();
builder.enableOppoPush(OPPO_App_KEY, OPPO_App_Secret);
RongPushClient.setPushConfig(builder.build());
提示

若同时使用其他推送请在 builder 中启用其他推送,若使用旧版本的 RongPushClient 的 register 方式启用的推送,请改用此 RongPushClient#setPushConfig 方式由 builder 启用各推送。

常见问题

接收 OPPO 推送需要用户的 OPPO 手机开启应用的通知权限。由于融云推送属于应用级别的推送,会受系统各种权限限制,我们建议您在使用时,在设置里打开自启动权限和通知权限,或者勾选“信任此应用”等,以提高推送到达率。

OPPO推送暂时只支持通知栏消息的推送。消息下发到 OS 系统模块并由系统通知模块展示,在用户点击通知前,不启动应用。

由于并非所有的 OPPO 手机都支持 OPPO 推送,所以仅在支持 OPPO 推送的 OPPO 手机上使用 OPPO 推送,在不支持 OPPO 推送的 OPPO 手机上使用融云默认推送。

关于 OPPO 推送服务的其他问题,建议参考 OPPO 官方开发者文档「常见 FAQ」中技术问题业务功能使用问题