一、场景描述
1.1 场景描述
众所周知,消息推送是生活服务、金融理财、新闻资讯等各类 App 和用户之间交互的桥梁。App 通过通知栏消息,低成本、高效率地向用户告知产品功能更新、运营活动上线、日常新闻动态等重要消息。为了帮助用户不错过重要通知,使 App 和用户之间的交互更加顺畅,个推 SDK 还支持 App 开发者自定义通知铃声(区别于系统提示音),通过声音的方式,更加有效地提醒用户及时查阅关键消息。
1.2 名称解释
2.1 客户端实现
android
在客户端 app/res/raw 目录下放置铃声文件(支持 mp3、wav、mpeg 等多种格式的音频文件),例如设置铃声文件名为:ringing.mp3
自定义的音乐文件必须是aiff,wav,caf,mp3,并且不能超过30秒。
把自制好的的铃声添加到项目的main bundle中后,在项目设置中Build Phases-Copy Bundle Resources中添加您的铃声文件 ;推送的时候在apninfo中的setsound中设置通知铃声为包含后缀名的的完整文件名,如:ring.mp3。
2.2 服务端实现
开发者可通过调用
个推服务端 api
或者登陆
个推开发者中心
从页面下发消息。针对这两种消息下发方式,开发者都可以通过简单配置,自定义消息下发时的通知栏铃声。
2.2.1 服务端 api 设置
由于默认的厂商策略是:在成功集成多厂商的前提下且 app 在线(即 app 在前台打开运行)时,下发 push_message 内的消息;app 离线( app 在后台、锁屏、进程关闭)时,下发 push_channel 内的消息。因此开发者在调用个推服务端 api 下发消息时,需要同时在 push_message 和 push_channel 内指定该铃声,
配置代码如下:
"request_id"
:
"请填写 10 到 32 位的 id"
,
"settings"
: {
"ttl"
:
3600000
"push_message"
: {
"notification"
: {
"title"
:
"个推在线通知标题"
,
"body"
:
"个推在线通知内容"
,
"click_type"
:
"url"
,
"url"
:
"https://www.getui.com/"
,
"ring_name"
:
"ringing"
,
"channel_id"
:
"请填写自定义渠道id"
,
"channel_name"
:
"请填写自定义渠道名"
,
"channel_level"
:
4
"push_channel"
: {
"android"
: {
"ups"
: {
"notification"
: {
"title"
:
"厂商离线通知标题"
,
"body"
:
"厂商离线通知内容"
,
"click_type"
:
"url"
,
"url"
:
"https://www.getui.com/"
"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"
:
"ringing.mp3"
,
"category"
:
"ACTIONABLE"
"auto_badge"
:
"+1"
在使用自定义铃声前,必须完成个推消息推送 SDK 和个推消息推送多厂商版本 SDK 的集成,建议使用:
个推官网最新版SDK
。
options 内相关参数的生成,可参考个推文档中心:
【华为】离线自定义铃声
、
【小米】离线自定义铃声
。
目通过以上方式实现后,app 在线时:ios、android 都支持自定义铃声;app 离线时:ios 完全支持、android 暂时只有小米、华为机型支持自定义铃声。其它安卓机型,等待对应厂商平台开放相关功能后会进行适配。
Android 12 由于系统限制,不支持在线自定义铃声。
2.2.2 个推开发者中心设置
1、 登陆
个推开发者中心
,进入个推消息推送 dos 页面,点击【创建推送】后在 Android 配置模块中选择【通知渠道模板】。一般默认为响铃、震动、唤醒屏幕。
2、通过设置通知渠道模板,来设置通知的提醒方式。可以自主选择响铃、震动、浮动、唤醒屏幕等多种方式对用户进行消息弱提醒、强提醒。如果是重要的消息内容,还可以针对通知栏铃声进行自定义设置,提醒特定用户群体及时关注消息;如果没有进行自定义设置,则通知栏铃声则默认为系统声音。
3、自定义铃声设置:在渠道模板【提醒方式】中选择通知铃声,输入自定义文件名。