2

试图找到这个,但找不到任何问同样问题的问题。

基本上我已经设置了我的推送通知,一切正常,并且在应用程序打开和关闭时都会收到它们。但是,我们使用的推动噪音很长,我不确定一旦他们按下警报上的“确定”按钮是否可以取消声音。

我曾尝试使用静音切换开关,但这似乎只在声音开始播放的那一刻开始发挥作用,如果它关闭声音播放,如果它打开则它不会。如果我在中间切换开关,它没有效果。但是,如果我只是在我的应用程序中播放常规声音剪辑(不是推送通知声音)并使用切换开关,那么声音会按预期停止/开始。

有没有办法消除声音?或者它作为某种系统声音被不同地对待?

编辑:过去几天我一直在尝试自己解决这个问题,我得出的结论是,没有办法在声音中取消推送警报声音。任何人都可以确认这绝对是这种情况吗?

Edit2:由于某种原因,xcode 标记已被删除 - 原因是它与 xcode 无关。我觉得我的问题可能不清楚 - 我正在使用 xcode 构建应用程序,并且我正在寻找一种以编程方式控制是否听到推送通知声音的方法。谢谢。

4

3 回答 3

0

没有给出答案,在过去的几个月里尝试过但失败了,我只能假设这是不可能的(以防万一将来有人遇到同样的问题)。

于 2012-05-30T14:27:53.053 回答
0

它对我有用:[[UIApplication sharedApplication] cancelAllLocalNotifications]

于 2014-01-02T19:39:19.477 回答
0

从 iOS 10 开始,您可以通过调用从通知中心删除所有通知

UNUserNotificationCenter.current().removeAllDeliveredNotifications()

音频停止播放,所有通知都从通知中心删除。

或者,要仅为特定通知停止声音,您可以使用:

UNUserNotificationCenter.current().removeDeliveredNotifications(withIdentifiers: [String])

这只会停止给定通知的音频,并将它们从通知中心中删除。

要获取所有已发送通知的 ID,请使用

UNUserNotificationCenter.current().getDeliveredNotifications { notifications in
  let ids = notifications.map { $0.request.identifier }
}
于 2020-06-01T19:35:05.423 回答