【问题标题】:Ionic Capacitor - Push Notification not making sound on iOS离子电容器 - 推送通知在 iOS 上不发出声音
【发布时间】:2020-01-13 18:17:48
【问题描述】:

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

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

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


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

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

【问题讨论】:

  • 我已经在一个信号推送服务的帮助下实现了相同的功能,适用于 android 和 IOS

标签: ios ionic-framework capacitor


【解决方案1】:

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

可能的值是:

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

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

push-notifications-appearance-in-foreground

【讨论】:

  • 我已经尝试过了。用该文件的设置更新了我的问题。如果我错误地配置了这个文件,请告诉我。谢谢!
【解决方案2】:

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

我遵循了相同的电容器指南并遇到了同样的问题,然后我通过从 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);

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


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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-11-02
    • 1970-01-01
    • 2015-01-14
    • 2012-05-08
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多