自定义通知铃声
功能简介
ZIM 消息推送默认使用在手机系统设置的铃声与震动提示状态,但也支持自定义通知铃声。
说明
本文档仅适用于配置了 APNs 或接入了 Google FCM 离线推送通道的项目。
前提条件
在自定义通知铃声之前,请确保:
- 已集成 ZPNs SDK,详情请参考 实现离线推送。
- 已在控制台配置离线推送证书。
实现流程
如需自定义铃声,您必须将铃声文件打包到应用程序中,同时需要在 ZEGO 控制台配置自定义铃声文件的地址,随后在发送离线推送时传入已配置的 resourceID。
准备声音资源
iOS 项目
Android 项目
在 ZEGO 控制台添加声音资源
1
进入项目详情页
登录 ZEGO 控制台,在 “项目管理” 页签中单击对应的项目,进入项目详情页。
2
点击添加资源按钮
选择“服务配置 > 即时通讯” 页签。找到 “自定义推送策略(resourceID)配置”,单击 “添加 reourcesID”。
3
填写必要信息
在弹窗中输入声音资源的相关信息并单击 “确定”。
说明
请根据您的项目实际情况,按需配置适用于 APNs 和 FCM 的 Sound 文件地址(可二选一)。
相关信息的说明如下:
信息 | 说明 |
---|---|
resourceID 名称 | 需要推送的资源的 ID。您可以自定义此 ID。 |
APNs | |
推送类型 | 必须为 “alert”。 |
Sound | 声音资源文件在您的应用中的地址。例如,如果您是通过 Xcode 打开项目并在 Build Phrases > Copy Bundle Resources 将声音资源引入项目,此时,该声音资源已位于根目录中,地址为“声音资源名称 + 后缀”,如 callSound.caf)。如何将声音资源加入到 iOS 项目工程,详情请参考 准备声音资源。 |
FCM | |
推送类型 | 仅支持为 “Notification Message” 自定义铃声。 |
Chanel ID | 如果您的项目支持 Android 8.0 (API 26) 及以上版本,需要创建 channel 以自定义铃声。如何创建 channel,详情请参考 准备声音资源。 |
Sound | 声音资源文件的名称,无需后缀,如 call_sound。如何将声音资源加入到 Android 项目工程,详情请参考 准备声音资源。 |
4
拷贝 Resource ID
完成输入后,“自定义推送策略(resourceID)配置” 下会出现该声音资源的具体信息,请拷贝对应的 Resource ID。
发送离线推送时使用自定义铃声
在 ZIMPushConfig 中填入之前拷贝的 Push Resource ID。
iOS - objective-C
Android - Java
Flutter - Dart
React Native - JavaScript
ZIMPushConfig *pushConfig = [[ZIMPushConfig alloc] init];
pushConfig.resourcesID = @"push_resources_soundlimit"; // 从 ZEGO 控制台拷贝的 Push Resource ID
pushConfig.title = @"your title";
pushConfig.content = @"your content";
// 调用包含 pushConfig 参数的 API
1
ZIMPushConfig pushConfig = new ZIMPushConfig();
pushConfig.title = "your title";
pushConfig.content = "your content";
pushConfig.resourcesID = "push_resources_soundlimit"; // 从 ZEGO 控制台拷贝的 Push Resource ID
// 调用包含 pushConfig 参数的 API
1
ZIMPushConfig pushConfig = ZIMPushConfig();
pushConfig.resourcesID = "push_resources_soundlimit"; // 从 ZEGO 控制台拷贝的 Push Resource ID
pushConfig.title = "your title";
pushConfig.content = "your content";
// 调用包含 pushConfig 参数的 API
1
var pushConfig = {
resourcesID: "push_resources_soundlimit", // 从 ZEGO 控制台拷贝的 Push Resource ID
title: "your title",
content: "your content"
};
var sendConfig = {
priority: 2,
pushConfig: pushConfig
};
// 调用包含 pushConfig 参数的 API
1