自定义通知铃声

自定义通知铃声

一、需求背景

1.1 背景描述

众所周知,消息推送是生活服务、金融理财、新闻资讯等各类 App 和用户之间交互的桥梁。App 通过通知栏消息,低成本、高效率地向用户告知产品功能更新、运营活动上线、日常新闻动态等重要消息。为了帮助用户不错过重要通知,使 App 和用户之间的交互更加顺畅,个推 SDK 还支持 App 开发者自定义通知铃声(区别于系统提示音),通过声音的方式,更加有效地提醒用户及时查阅关键消息。

1.2 名称解释

名词 解释
通知铃声 个推SDK自动处理在手机系统通知栏中展示通知栏消息时,响铃提醒用户。

二、技术实现方案

自定义铃声需要客户端和服务端配合使用。

2.1 客户端实现

平台 实现方式
android 在客户端 app/raw 目录下放置铃声文件(支持 mp3、wav、mpeg 等多种格式的音频文件),例如设置铃声文件名为:ringing.mp3
ios 在客户端把自制好的的铃声添加到项目的 main bundle 中后,在项目设置 Build Phases-->Copy Bundle Resources 中添加您的铃声文件(支持 aiff,wav,caf,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"
        }
    },
    "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"
                    },
                    "XM": {
                        "sound_uri": "小米后台申请的自定义sound_url地址",
                        "channel": "小米后台申请的通知类别id"
                    }
                }
            }
        },
        "ios": {
            "type": "notify",
            "aps": {
                "alert": {
                    "title": "ios通知标题",
                    "body": "ios通知内容"
                },
                "content-available": 0,
                //sound字段为ios通知铃声文件名(包含格式后缀名)。
                "sound": "ringing.mp3",
                "category": "ACTIONABLE"
            },
            "auto_badge": "+1"
        }
    }
}

注意事项

  1. 在使用自定义铃声前,必须完成个推消息推送 SDK 和个推消息推送多厂商版本 SDK 的集成,建议使用:个推官网最新版SDK
  2. options 内相关参数的生成,可参考个推文档中心:多厂商参数
  3. 目通过以上方式实现后,app 在线时:ios、android 都支持自定义铃声;app 离线时:ios 完全支持、android 暂时只有小米、华为机型支持自定义铃声。其它安卓机型,等待对应厂商平台开放相关功能后会进行适配。

2.2.2 个推开发者中心设置

1、 登陆 个推开发者中心,进入个推消息推送 dos 页面,点击【创建推送】后在 Android 配置模块中选择【通知渠道模板】。一般默认为响铃、震动、唤醒屏幕。

2、通过设置通知渠道模板,来设置通知的提醒方式。可以自主选择响铃、震动、浮动、唤醒屏幕等多种方式对用户进行消息弱提醒、强提醒。如果是重要的消息内容,还可以针对通知栏铃声进行自定义设置,提醒特定用户群体及时关注消息;如果没有进行自定义设置,则通知栏铃声则默认为系统声音。

3、自定义铃声设置:在渠道模板【提醒方式】中选择通知铃声,输入自定义文件名。

image-20220223150141100

开发者中心 SDK 下载

文档中心搜索

技术
咨询

微信扫一扫

随时联系技术支持

在线
咨询