众所周知,消息推送是生活服务、金融理财、新闻资讯等各类 App 和用户之间交互的桥梁。App 通过通知栏消息,低成本、高效率地向用户告知产品功能更新、运营活动上线、日常新闻动态等重要消息。为了帮助用户不错过重要通知,使 App 和用户之间的交互更加顺畅,个推 SDK 还支持 App 开发者自定义通知铃声(区别于系统提示音),通过声音的方式,更加有效地提醒用户及时查阅关键消息。
名词 | 解释 |
---|---|
通知铃声 | 个推SDK自动处理在手机系统通知栏中展示通知栏消息时,响铃提醒用户。 |
机型 | 个推渠道 | 厂商渠道 |
---|---|---|
华为 | 支持 | 支持 |
荣耀 | 支持 | 不支持 |
小米 | 支持 | 支持 |
OPPO | 支持 | 不支持 |
VIVO | 支持 | 不支持 |
魅族 | 支持 | 不支持 |
IOS | 支持 | 支持 |
FCM | 支持 | 不支持 |
自定义铃声需要客户端和服务端配合使用。
在客户端 app/src/main/res/raw 目录下放置铃声文件(支持 mp3、wav、mpeg 等多种格式的音频文件),例如设置铃声文件名为:ringing.mp3
自定义的音乐文件必须是aiff,wav,caf,mp3,并且不能超过30秒。
把自制好的的铃声添加到项目的main bundle中后,在项目设置中Build Phases-Copy Bundle Resources中添加您的铃声文件 ;推送的时候在apninfo中的setsound中设置通知铃声为包含后缀名的的完整文件名,如:ring.mp3。
开发者可通过调用 个推服务端 api 或者登陆 个推开发者中心 从页面下发消息。针对这两种消息下发方式,开发者都可以通过简单配置,自定义消息下发时的通知栏铃声。
由于默认的厂商策略是:在成功集成多厂商的前提下且 app 在线(即 app 在前台打开运行)时,下发 push_message 内的消息;app 离线( app 在后台、锁屏、进程关闭)时,下发 push_channel 内的消息。因此开发者在调用个推服务端 api 下发消息时,需要同时在 push_message 和 push_channel 内指定该铃声,
配置代码如下:
{
"request_id": "请填写 10 到 32 位的 id",
"settings": {
"ttl": 3600000
},
"push_message": {
//个推在线通知仅支持android,ios在线请使用透传消息
"notification": {
"title": "个推在线通知标题",
"body": "个推在线通知内容",
"click_type": "url",
"url": "https://www.getui.com/",
//从个推通道下发通知消息时的铃声文件名,此处不用填文件格式后缀名
"ring_name": "ringing",
//若有多个铃声文件,建议配套通知渠道使用,每个铃声指定不同的渠道id
"channel_id": "请填写自定义渠道id",
"channel_name": "请填写自定义渠道名",
"channel_level": 4
}
},
"push_channel": {
"android": {
"ups": {
"notification": {
"title": "厂商离线通知标题",
"body": "厂商离线通知内容",
"click_type": "url",
"url": "https://www.getui.com/"
},
//options内为华为、小米的离线通知铃声设置(华为服务与通讯、小米私信类消息才支持自定义铃声)
"options": {
"HW": {
"/message/android/notification/default_sound": false,
"/message/android/notification/channel_id": "RingRing4",
"/message/android/notification/sound": "/raw/ringing",
"/message/android/category": "填写华为侧的"服务与通讯"category取值",
},
"XM": {
"/extra.sound_uri": "小米后台申请的自定义sound_url地址",
"/extra.channel_id": "小米后台申请的"私信"通知类别id"
}
}
}
},
"ios": {
"type": "notify",
"aps": {
"alert": {
"title": "ios离线通知标题",
"body": "ios离线通知内容"
},
"content-available": 0,
//sound字段为ios通知铃声文件名(包含格式后缀名)。
"sound": "ringing.mp3",
"category": "ACTIONABLE"
},
"auto_badge": "+1"
}
}
}
注意事项
1、 登陆 个推开发者中心,进入个推消息推送 dos 页面,点击【创建推送】后在 Android 配置模块中选择【通知渠道模板】。一般默认为响铃、震动、唤醒屏幕。
2、通过设置通知渠道模板,来设置通知的提醒方式。可以自主选择响铃、震动、浮动、唤醒屏幕等多种方式对用户进行消息弱提醒、强提醒。如果是重要的消息内容,还可以针对通知栏铃声进行自定义设置,提醒特定用户群体及时关注消息;如果没有进行自定义设置,则通知栏铃声则默认为系统声音。
3、自定义铃声设置:在渠道模板【提醒方式】中选择通知铃声,输入自定义文件名。