跳到主要内容

推送自定义铃声

GoEasy从GoEasy JS Sdk 2.8开始,支持开发者推送通知时指定自定义铃声。

GoEasy自定义铃声的的工作原理是,当App进程存活,由GoEasy来创建本地通知并播放自定义铃声。当App进程被杀掉,GoEasy调用厂商通道推送消息来播放自定义铃声,不同手机能否支持自定义铃声取决于厂商通道能否支持自定义铃声。

GoEasy自定义铃声当前对各厂商支持情况
厂商进程存活(GoEasy推送)进程被杀(厂商通道)
iOS支持支持
小米支持支持
华为支持支持
荣耀支持不支持
OPPO支持不支持
VIVO支持不支持
Google FCM支持不支持
魅族支持不支持

集成GoEasy Uniapp通知栏推送原生插件

要支持播放自定义铃声,需要依赖GoEasy Uniapp通知栏推送原生插件(1.5.0以上版本),请参考集成GoEasy Uniapp通知栏推送原生插件

在APP中加入铃声文件

GoEasy自定义铃声当前文件格式支持情况:

  1. iOS: 仅支持caf文件,其他格式如何转换成caf,网上有很多教程
  2. Android:为了确保同一套代码能够在不同手机播放,建议统一使用mp3格式,其他格式可能导致无法兼容其他手机品牌。(如需要使用其他格式,各厂商支持的文件格式不同,具体请参考各个厂商的文档,并自行测试)

Android

将铃声文件放到原生插件android/res/raw目录下

iOS

1.将铃声文件放到原生插件ios目录下,并将文件名填到插件package.json->"_dp_nativeplugin"->"ios"->"resources"中,如图:

2.manifest.json中配置后台运行能力->audio,如图:

制作自定义基座

自定义铃声依赖原生插件播放,所以需要制定自定义基座,自定义铃声才能正常播放,请参考制作自定义基座

推送时指定铃声文件

发送消息时,在notification中加入sound属性,指定铃声文件的路径即可,注意不能包含扩展名

    pubsub.publish({
channel: "my_channel", //请确认与接收端一致
message: "Hello GoEasy!", //app内onMessage收到的消息内容
notification: { //定义通知栏推送
title: '您有一条新消息', //通知栏提醒标题,仅显示于通知栏
body: "Hello GoEasy!", //通知栏提醒内容,仅显示于通知栏
sound: 'custom_ring' //铃声文件名,注意不可包含扩展名
},
onSuccess: function () {
console.log("Publish successfully.")
},
onFailed: function (error) {
console.log("Failed to publish message, code:" + error.code + ' error:' + error.content);
}
});

小米特殊处理

1.向小米官方申请channel时,选择自定义铃声并填写铃声文件的url,详情请参考《小米channel官方申请指南》

2.发送消息时,指定xiaomi的channel_id,详见发送消息时指定厂商分类参数