集成 vivo 推送
概述
统一推送联盟
成立之后,各大厂商都推出了自己的推送服务通道,主要目的是为了建立 Android 推送生态。目前小米,华为,魅族,OPPO,vivo 等厂商都推出了系统级别的推送通道,避免了各家 APP 都使用各自的长链接来维持推送通道、需要应用进程处于存活状态,而造成手机耗电、耗内存等问题。
前提条件
在接入 vivo
的离线推送通道之前,请确保:
-
已集成最新版本的音视频通话 UIKit(Call Kit),并且完成在线邀请功能,详情请参考 快速开始(包含呼叫邀请)。
-
已完成如下步骤:
使用步骤
-
获取 vivo 推送 SDK。
点击获取 vivo 推送 SDK。
-
添加 vivo 推送 SDK。
将 vivo 推送 SDK “vivo_pushSDK_xxxxx.aar”(xxxxx 为具体版本号),拷贝到您项目路径的 “app/libs” 目录下。然后,在 “build.gradle” 中添加 aar 依赖,参考如下:
Untitledimplementation files('libs/vivo_pushSDK_v3.0.0.7_488.aar')
1 -
打开 “src/main/” 文件夹下的 “AndroidManifest.xml” 文件,您需要在当前应用程序中,配置 前提条件 中获取到的 vivo 应用的 AppID、AppKey 等信息。
Untitled<!--Vivo Push开放平台中应用的appid 和app key--> <meta-data android:name="com.vivo.push.api_key" android:value="xxxxxxxxxxxxxxxx"/> <meta-data android:name="com.vivo.push.app_id" android:value="xxxxxxx"/>
1 -
以上配置完成后,请前往 ZEGO 控制台,点击“项目管理”,选择需要配置的项目,查看“项目配置”。在“服务配置 - 即时通讯 - 离线推送证书配置” 中 “点击添加证书”,如下图所示(针对每个 Android 厂商,您至多可以添加两个证书):
Note图中字段“Project ID” 为您在各厂商申请的参数,根据每个厂商不一样。
添加完成后,您可以在“离线推送证书配置”模块看到该证书,还可以再次编辑或删除该证书。
-
防止混淆代码
在“proguard-rules.pro”文件中,为 vivo 推送 SDK 添加 -keep 类的配置,这样可以防止混淆 vivo 推送 SDK 公共类名称:
Untitled-dontwarn com.vivo.push.** -keep class com.vivo.push.**{*; } -keep class com.vivo.vms.**{*; } -keep class im.zego.zpns.internal.receiver.VivoMessageReceiver
1
vivo 推送消息限制
vivo 推送将消息分为“系统消息”和“运营消息”两大类别。未接入消息分类,将默认为运营消息,受运营消息规则管控。详情请参见 vivo 官网文档 推送消息限额。
消息分类 | 应用类别 | 用户接收数量限制 |
---|---|---|
系统消息 | / | 无限制。 |
运营消息 | 新闻资讯类(具备《互联网新闻信息服务许可证》,且应用分类为“新闻资讯”)。 | 5条。 |
其他类。 | 2条。 | |
测试消息 | 审核中的应用,推送权限为“受限”,只能通过 API,向在 Web 页面中添加的测试设备发送测试消息,测试设备数量上限为 20 个,测试消息不受量级和频控限制。 发送测试消息时注意填写 pushMode=1 (0:正式推送;1:测试推送;不填默认为 0)。若未填写,则文案相同时,将被当做重复运营消息被去重。 |
- 通知开启的有效用户:应用集成的 push-sdk 订阅成功,且设备近 14 天内有联网的通知权限开启用户。
- 通知开启有效用户数<10000,则运营消息量级默认为 10000。
基于系统消息配置不限量推送
-
完成上述申请后,请登录ZEGO 控制台,添加 resourceID,步骤如下:
-
选择项目管理,查看对应的项目。
-
选择 服务配置- 即时通讯 页面,下滑到“自定义推送策略(resourcesID)配置,点击“添加 resourceID”。
-
提供
resourceID
(由您自定义,不超过 32 个字符)、category
(推送类别)、classification
(分类)、push_mode
(推送模式),配置 resouceID。字段 说明 resourceID 由您自定义,不超过 32 个字符。 建议 resourceID 能够直接反映推送目的。例如,目的是打电话,就可以命名为call_resource
。category 推送类别。 - 填写 category 后,可以不填写 classification。
- 但若填写 classification,请保证 category 与 classification 是正确对应关系,否则无法推送。
classification 消息类型。 - 运营类消息。
- 系统类消息。
push_mode 推送模式。 - 正式环境。
- 测试环境。
-
-
在发起邀请时,可以指定使用该 Resource ID 对应的通道进行推送。您需要将配置的 Resource ID 填写到对应的呼叫邀请按钮中或者设置给呼叫邀请接口,即可在呼叫邀请的时候使用离线推送功能。