gpt4 book ai didi

android - node-gcm cordova android 自定义声音推送

转载 作者:行者123 更新时间:2023-11-30 05:00:04 25 4
gpt4 key购买 nike

我有一个关于 CORDOVA 的项目。连接到它 FCM。说明表明我可以将我的声音设置为通知。

https://firebase.google.com/docs/cloud-messaging/http-server-refa

enter image description here

在服务器 (node.js) 上,我使用的是 node-gcm 模块。文档还说可以设置声音

https://www.npmjs.com/package/node-gcm

在项目本身中,声音文件在几个地方(只是为了案例):

Cordova 根/

  1. test.mp3 res/raw/test.mp3
  2. res/android/raw/test.mp3
  3. 平台/android/res/raw/test.mp3
  4. 平台/android/app/src/main/res/raw/test.mp3

组装后,我检查了 APK 文件中路径 res/raw/test.mp3 中是否存在声音 - 它就在那里。

我正在从服务器发送消息。它已成功显示在智能手机上,但声音默认。不是我设置的。

问题:如何让消息以正确的声音到达?测试 ANDROID 9

var message = new gcm.Message({
notification: {
sound: 'test',
title: "TITLE",
body: "BODY",
}
});

最佳答案

从 Android 8 开始,有一个叫做 NotificationChannel 的东西这决定了通知优先级、声音、振动模式和 LED 颜色。这些 channel 设置推送负载之间存在永恒的冲突,似乎没有人能确定哪一个优先于另一个。

通知 channel 的设置不能从 PushNotification.createChannel 方法或推送负载中更改。在我的测试中,推送数据无法覆盖声音和 LED 颜色等内容。 (但是,您可以在有效负载中设置振动模式,如果您创建了一个激活了 vibration 的 channel ,插件将尊重它)。

我的猜测是,您必须 create a new notification channel使用自定义声音名称,然后使用相同的声音发送推送(或者就此而言没有声音)。请记住,一旦创建,某些 channel 设置将无法更改,即使您删除 channel 并使用相同的 ID 重新创建也是如此。我的建议是忘记修改默认的 PushPluginChannel,因为这是浪费时间:使用具有您首选设置的新 channel ,并开始测试会发生什么:

  • 负载中设置的声音文件与 createChannel 设置的声音文件
  • 负载中设置的振动与 createChannel 设置的振动
  • 负载中设置的 LED 颜色与 createChannel 设置的 LED 颜色

尝试弄清楚这些设置在搭载 Android 8 的三星手机和其他搭载 Android 9 的手机中的工作原理会带来很多乐趣。尝试在三星手机中设置 LED 颜色时我差点发疯,但它在之后起作用了更改插件 (v2.1.3)。

关于android - node-gcm cordova android 自定义声音推送,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58410979/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com