iOS推送通知声音在打开时不会取消

时间:2014-08-01 14:04:38

标签: ios audio apple-push-notifications

我正在创建一个使用Apple推送通知和自定义声音(约15秒长度)的应用程序。如果我在使用手机时打开通知,声音会终止,但如果我从睡眠模式唤醒手机时打开通知,则声音会持续播放直到结束。如何避免不必要的推送声音播放?

2 个答案:

答案 0 :(得分:2)

我知道现在已经很晚了,但事实证明苹果公司没有提供任何API来管理推送通知声音,所以你无法阻止它播放。我想建议你使用较短的推送通知声音。这也是有道理的,因为推送通知的意图是很快通知用户新事件,而不是长时间打扰他。

答案 1 :(得分:0)

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

UNUserNotificationCenter.current().removeAllDeliveredNotifications()

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

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

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

这将仅停止给定通知的音频,并将其从通知中心中删除。

要获取所有已传递通知的ID,请使用

UNUserNotificationCenter.current().getDeliveredNotifications { notifications in
  let ids = notifications.map { $0.request.identifier }
}

当然,缺点是通知已从用户的通知中心中删除。