添加链接
link管理
链接快照平台
  • 输入网页链接,自动生成快照
  • 标签化管理网页链接
相关文章推荐
腼腆的小马驹  ·  Jmeter JSR223 Groovy ...·  1 月前    · 
完美的莴苣  ·  Error with flowable ...·  9 月前    · 
玉树临风的野马  ·  TypeError: can't ...·  1 年前    · 

一、场景描述

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" : { //个推在线通知仅支持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"
  • 在使用自定义铃声前,必须完成个推消息推送 SDK 和个推消息推送多厂商版本 SDK 的集成,建议使用: 个推官网最新版SDK
  • options 内相关参数的生成,可参考个推文档中心: 【华为】离线自定义铃声 【小米】离线自定义铃声
  • 目通过以上方式实现后,app 在线时:ios、android 都支持自定义铃声;app 离线时:ios 完全支持、android 暂时只有小米、华为机型支持自定义铃声。其它安卓机型,等待对应厂商平台开放相关功能后会进行适配。
  • Android 12 由于系统限制,不支持在线自定义铃声。
  • 2.2.2 个推开发者中心设置

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

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

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