【问题标题】:Set different sound notification设置不同的声音通知
【发布时间】:2016-10-13 10:21:46
【问题描述】:

我有一个设备令牌池(iOS 和 Android),在docs 中,我发现两个平台都只有一个参数sound,显然我有两种不同的通知声音,一种用于 Android,一种用于 iOS。

我是否必须按设备类型拆分设备令牌才能发送到 2 个单独的设备类型?还是我错过了什么?

谢谢。

【问题讨论】:

  • 有趣。您是否打算在前台接收此通知?如果是这样,您是否考虑过使用data 有效负载并设置自定义键值对,指定您要为每种设备类型使用的声音?例如"android_sound":"sound1", "ios_sound":"sound2"
  • 感谢您的技巧,但不幸的是,此通知将在后台和前台收到
  • 你能在两个平台上用相同的名字命名两个声音文件吗?

标签: firebase firebase-cloud-messaging firebase-notifications


【解决方案1】:

解决方案 1

您可以将两个音频文件命名为相同的名称,例如“your_app.mp3”。

名称相同,但每个应用上的音乐文件不同。这不允许用户选择通知声音,但至少允许每个应用程序有不同的声音。

解决方案 2

迁移到新的Firebase HTTP v1 API,它允许您使用customize notifications across platforms

个人经历

@daniel-raouf 提出的发送数据消息的解决方案很棒;但根据我的经验,某些数据消息在以下情况下无法发送给您的用户:

  1. 用户的手机有省电模式(默认在华为、小米、一加...)

  2. 当 iOS 用户从最近的应用中清除您的应用时(多任务)。

因此,在我看来,数据消息不是通知的可靠解决方案。

【讨论】:

  • 是的,我使用新的 api(忘记回复)解决方案 2 适合我
【解决方案2】:

你错过了什么,

A- 如果您想让用户在任何设备上选择他喜欢的通知声音,那么

  1. 不发送通知
  2. 仅发送数据以强制接收到的内容通过 onReceive 事件
  3. 在接收时将声音、您想要的图标和数据添加到通知生成器。

B- 如果您希望应用使用默认声音

所以在通知正文中设置声音:'default',它适用于所有类型的设备

【讨论】:

    猜你喜欢
    • 2011-07-05
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-02-06
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-08-17
    相关资源
    最近更新 更多