如何使用 JavaScript (PWA) 在 Android 设备上为 FCM 创建 channel_ID?

Posted

技术标签:

【中文标题】如何使用 JavaScript (PWA) 在 Android 设备上为 FCM 创建 channel_ID?【英文标题】:How to create a channel_ID for FCM on an Android device in JavaScript (PWA)? 【发布时间】:2021-11-05 08:47:45 【问题描述】:

在我的 PWA 应用中,某些设备在收到推送通知时不会播放声音。我猜是因为在android O之后,必须有一个频道ID,否则不能播放声音。

这是我发送到 FCM 服务器的代码:

const toSend =
        notification:
        
            title:"Video Call!",
            body:"Video call!",
            click_action: "...",
            sound: "default",
            vibrate: [200, 100, 200, 100, 200, 100, 200]
        ,
        to:othermailandtoken[1]
        ;

根据下面的文档,我需要添加“channel_id”。但是,我发现的所有实现都是 Java (Android),但我的应用程序是 javascript (PWA) https://firebase.google.com/docs/reference/fcm/rest/v1/projects.messages#androidnotification

"channel_id 字符串

通知的频道 ID(Android O 中的新功能)。该应用程序必须创建 在任何通知之前具有此频道 ID 的频道 收到频道 ID。如果您未在 请求,或者如果提供的频道 ID 尚未由 应用,FCM 使用应用清单中指定的通道 ID。”

那么如何创建可以从 JavaScript 发送到应用程序的 channel_id?

或者有没有其他方法可以让更新的 android 版本播放收到的sound: "default"?会不会是其他问题?

**编辑:**我找到了一个临时解决方案。我转到设置/通知,然后手动打开。不是很好,但现在总比没有好。

【问题讨论】:

遇到同样的问题,请参阅***.com/questions/67862991/…。 3个月了还是没有答案…… 我明白了。到目前为止,我发现的唯一解决方法基本上是在设置/通知/应用程序名称中手动打开。至少对我来说原型已经足够了。 【参考方案1】:

您需要使用AndroidNotification,它提供属性channel_id

但是,这似乎只在 REST API 上可用 - 但 JS 可以访问它。

【讨论】:

以上是关于如何使用 JavaScript (PWA) 在 Android 设备上为 FCM 创建 channel_ID?的主要内容,如果未能解决你的问题,请参考以下文章

如何通过 JavaScript 显示“PWA Web 应用程序图标”的计数?

为啥使用 JavaScript 在我的 PWA 上重复该位置?

在 iOS 中使用 JavaScript 在 PWA 中显示服务器生成的图像

我可以使用 Javascript 从颤振 PWA 调用函数吗?如果是的话怎么办?

如何在 Safari iOS13+ 中从 PWA 下载图像

在我们的 PWA 中触发 JavaScript 错误的这个未知的源自 Google 的客户端是啥?