繁体   English   中英

离子电容器 - 推送通知在 iOS 上没有声音

[英]Ionic Capacitor - Push Notification not making sound on iOS

我们正在使用本指南创建一个非常常规的推送通知系统。

我们一切正常,推送通知正在通过。 在 Android 上,推送通知会发出默认警报声。 然而,在 iOS 上,没有声音。

我们如何配置推送通知以使用 iOS 上的默认警报声音(我们不想创建/管理自定义警报声音)。


我已经在capacitor.config.json文件中配置了presentationOptions设置。

{
  "appId": "REDACTED",
  "appName": "REDACTED",
  "bundledWebRuntime": false,
  "npmClient": "npm",
  "webDir": "www",
  "plugins": {
    "PushNotifications": {
      "presentationOptions": ["badge", "sound", "alert"]
    }
  }
}

在前台显示推送通知 在 iOS 上,您可以通过在您的电容器.config.json 中提供presentationOptions 作为您可以组合的字符串数组来配置当应用程序处于前台时推送通知的显示方式。

可能的值为:

徽章:应用程序图标上的徽章计数已更新(默认值) 声音:收到推送通知时设备将响铃/振动 警报:推送通知显示在本机对话框中 如果之前没有任何一个,则可以提供空数组选项是需要的。 pushNotificationReceived 事件仍将与推送通知信息一起触发。

"plugins": {
  "PushNotifications": {
    "presentationOptions": ["badge", "sound", "alert"]
  }
}

推送通知出现在前台

你用什么来发送推送通知?

我遵循了相同的电容器指南并遇到了同样的问题,然后我通过从 Firebase 云消息传递控制台发送通知进行了测试,它在 iOS 上运行(通知发出声音)。

后来我发现在我用来发送通知的代码(firebase nodejs admin SDK)中,我没有提供sound属性的值。 我认为,因为它不是必需的,并且可以在 Android 上运行,所以它也应该可以在 iOS 上运行。 我错了!

import * as admin from 'firebase-admin';

const message: admin.messaging.MessagingPayload = {
    data: {
        ...
    },
    notification: {
        title: 'title',
        body: 'body',
        sound: 'default' // Add this line
    },
};
await admin.messaging().sendToDevice(tokens, message);

文档说这个属性只针对Android平台,所以我一开始没有设置。


PS:我还在capacitor.config.json文件中添加了上面提到的presentationOptions设置。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM