跳到主要内容

集成 vivo 推送

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

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

在融云控制台配置 vivo 推送

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

  1. 前往 vivo 开发者平台-推送服务器平台,并记录下 vivo 应用的 AppIDAppKeyAppSecret

    提示

    如果没有 vivo 开发者账号,或尚未创建应用,参考 vivo 文档 vivo 推送接入流程

    (width=600)

    (height=400)

  2. 打开融云控制台,在应用标识页面点击设置推送,找到 Android > vivo 推送,填入上一步获取的 AppIDAppKeyAppSecret

    (height=400)

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

  4. 配置推送模式。关于正式推送与测试推送的区别,请参考 vivo 文档vivo 推送使用指南

  5. (可选)配置推送通道类型Category(消息二级分类)。如果调用客户端或服务端 API 发送消息或推送通知时未传值,默认使用此处配置的值。请参考 vivo 文档推送消息分类说明进行配置。

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

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

配置客户端接收 vivo 推送

首先,需要将 vivo 客户端 SDK 添加到您的 Android 项目。

提示
  • 如果您项目使用的 IMLib/IMKit SDK 版本大于等于 5.2.1,则 vivo 推送客户端 SDK 必须集成或升级至 3.0.0.4 及之后版本。
  • 如果您项目使用的 IMLib/IMKit SDK 版本大于等于 5.6.8,必须使用 vivo 推送客户端 SDK 3.0.0.7 或更新版本。

您也可以直接从 vivo 下载最新版 AAR 包进行手动集成(参考 vivo 的Android PUSH-SDK 集成指南)或从融云下载。融云官网 SDK 下载页提供 vivo 推送客户端 SDK 下载。在页面勾选第三方推送后,下载 zip 文件。在解压后的文件目录中找到 pushlibs 下的 vivo 推送客户端 SDK 文件(vivo-pushSDK-xxx.aar),拷贝到 app 的 libs 目录下。

dependencies {
implementation (name: 'vivo-pushSDK-xxx', ext: 'aar')
}

处理 vivo 推送的权限、服务与广播接收器

在主工程中的 AndroidManifest.xml 中增加权限声明,集成 vivo 推送客户端 SDK 只需要配置网络权限:

<!-- 推送需要的权限列表 -->
<uses-permission android:name="android.permission.INTERNET"/>

vivo 推送客户端 SDK 需要配置对应的 AppID 、AppKey 信息(从 vivo 开发者平台-推送服务器平台 获取),请在 AndroidManifest.xml 中添加以下配置:

<!-- vivo 推送配置项 -->
<meta-data
android:name="com.vivo.push.api_key"
android:value="您的 vivo 推送平台生成 AppKey"/>
<meta-data
android:name="com.vivo.push.app_id"
android:value="您的 vivo 推送平台生成 AppID"/>

接入 vivo 推送客户端 SDK 注册以下 service、activity。

<!-- vivo 推送服务需要配置的 service、activity -->
<service
android:name="com.vivo.push.sdk.service.CommandClientService"
android:exported="true"/>
<activity
android:name="com.vivo.push.sdk.LinkProxyClientActivity"
android:exported="false"
android:screenOrientation="portrait"
android:theme="@android:style/Theme.Translucent.NoTitleBar"/>

以上内容来自 vivo。如需了解更多细节,请参考 vivo 文档 Android PUSH-SDK 集成指南

使用融云 SDK 提供的广播接收器

为了接收 vivo 推送消息,必须实现一个继承自 vivo OpenClientPushMessageReceiver 类的广播接收器(Broadcast Receiver)。融云 SDK 已经实现了该广播接收器,您只需要将融云提供的 VivoPushMessageReceiver 注册到 AndroidManifest.xml 文件中,注册内容如下:

<!-- vivo push 推送 receiver 声明 -->
<receiver android:name="io.rong.push.platform.vivo.VivoPushMessageReceiver"
android:exported="true">
<intent-filter>
<!-- 接收 vivo push 消息 -->
<action android:name="com.vivo.pushclient.action.RECEIVE" />
</intent-filter>
</receiver>

启用 vivo 推送服务

请在初始化融云 SDK 之前启用 vivo 推送服务。融云 SDK 将向 vivo 推送服务注册、并将获取的 vivo 推送 Token 上报给融云服务端。

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

PushConfig config = new PushConfig.Builder()
.enableVivoPush(true)
.build();
RongPushClient.setPushConfig(config);

解决与已有 vivo 推送集成的冲突

如果您的应用或应用依赖的其他 SDK 已集成 vivo 推送客户端,此时无法再按上述步骤集成 vivo 推送,否则会发生冲突。

请如下步骤进行处理:

  1. 创建一个自定义的 Broadcast Receiver,例如 VivoPushReceiver,继承融云 SDK 提供的 VivoPushMessageReceiver,并覆写父类方法。
  2. 使用新创建的 VivoPushReceiver 替换应用中原有的 vivo 推送的 Broadcast Receiver。
  3. AndroidManifest.xml 中注册新创建的 VivoPushReceiver