离子电容器-推送通知在iOS上不发出声音

离子电容器-推送通知在iOS上不发出声音,ios,ionic-framework,capacitor,Ios,Ionic Framework,Capacitor,我们正在使用创建一个非常常规的推送通知系统 我们一切正常,推送通知正在发送中。在Android上,推送通知会发出默认警报声音。但在iOS上,不会发出声音 我们如何配置推送通知以在iOS上使用默认警报声音(我们不希望创建/管理自定义警报声音) 我已经在capactor.config.json文件中配置了presentationOptions设置 { "appId": "REDACTED", "appName": "REDACTED", "bundledWebRuntime": fal

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

我们一切正常,推送通知正在发送中。在Android上,推送通知会发出默认警报声音。但在iOS上,不会发出声音

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


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

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

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

可能的值为:

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

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

您使用什么发送推送通知

我遵循同样的电容器指南,面对同样的问题,然后我做了一个测试,从Firebase云消息控制台发送通知,它在iOS上工作(通知发出声音)

后来我发现,在我用来发送通知的代码(firebase nodejs admin SDK)中,我没有为
声音
属性提供值。我认为,既然它不是必需的,而且在安卓系统上工作,那么它也应该在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:我还在
capactor.config.json
文件中添加了上面提到的
presentationOptions
设置。

我已经尝试过了。用该文件的设置更新了我的问题。如果此文件配置不正确,请通知我。谢谢我在android和IOS的onesignal推送服务的帮助下实现了同样的功能
{
  "appId": "REDACTED",
  "appName": "REDACTED",
  "bundledWebRuntime": false,
  "npmClient": "npm",
  "webDir": "www",
  "plugins": {
    "PushNotifications": {
      "presentationOptions": ["badge", "sound", "alert"]
    }
  }
}