繁体   English   中英

即使启用了“请勿打扰”设备,如何为 VoIP 推送呼叫显示传入的 CallKit window?

[英]How to show incoming CallKit window for VoIP push call even if the device “Do not Disturb” is enabled?

我们有一个具有 CallKit 功能的应用程序。 我面临的一个问题是,如果用户将设备请勿打扰模式设置为开启,那么如果设备被锁定,则不会显示 CallKit 传入通知。 当设备处于此模式时,会出现一个 CallKit 错误,即CXErrorCodeIncomingCallErrorFilteredByDoNotDisturb ,但如果有来电,我仍想向用户显示通知。

在此处输入图像描述

注意:我发现即使启用DND ,WhatsApp 仍会显示传入的 CallKit 通知。 任何帮助/建议将不胜感激。

如果您想在收到CXErrorCodeIncomingCallErrorFilteredByDoNotDisturb错误时显示通知,您可以执行以下操作:

cxProvider.reportNewIncomingCall(
    with: aCallId,
    update: vCallUpdate,
    completion: { error in
        guard let vError = error as? CXErrorCodeIncomingCallError else { return }
        if vError.code == .filteredByDoNotDisturb {
            let content = UNMutableNotificationContent()
            content.title = "Call"
            // ...

            let request = UNNotificationRequest(identifier: UUID().uuidString, content: content, trigger: nil)

            UNUserNotificationCenter.current().add(request) { error in
                if let vError = error {
                    print(vError.localizedDescription)
                }
            }
        }
    })

当请勿打扰处于活动状态时,WhatsApp 在收到音频通话后不会显示通知,它只会显示视频通话的通知。 那是因为他们仅将 CallKit 和 PushKit 用于音频通话。 对于视频通话,他们使用正常的推送通知。

暂无
暂无

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

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