【问题标题】:How to implement CallKit : SwiftUI [closed]如何实现 CallKit:SwiftUI [关闭]
【发布时间】:2019-12-16 14:02:54
【问题描述】:

有没有人尝试过将CallKitSwiftUI 一起使用?任何人都可以给我任何指示,这是否可能? CallKitUIKit 配合得很好,但是,我还没有看到使用 SwiftUI 实现的任何此类功能。

【问题讨论】:

  • 您没有为 callkit 实现自定义 UI,因此您使用哪个 UI 框架并不重要。你没有做任何与 UI 相关的工作。
  • 你说得对,我只是在使用 iOS 的原生呼叫屏幕并设置一个委托来捕获事件。谢谢!

标签: ios swift swiftui voip callkit


【解决方案1】:

使用SwiftswiftUI 实现CallKit 时没有什么不同

当您在SwiftSwiftUI 中创建CallKit 扩展时,两者都是相同的。您还可以在下面的代码中注意到。

所以你也可以参考 Swift 代码在 SwiftUI 中实现CallKit

SwiftUI CallKit 扩展:

class CallDirectoryHandler: CXCallDirectoryProvider {

    override func beginRequest(with context: CXCallDirectoryExtensionContext) {}

    private func addAllBlockingPhoneNumbers(to context: CXCallDirectoryExtensionContext) {}

    private func addOrRemoveIncrementalBlockingPhoneNumbers(to context: CXCallDirectoryExtensionContext) {}

    private func addAllIdentificationPhoneNumbers(to context: CXCallDirectoryExtensionContext) {}

    private func addOrRemoveIncrementalIdentificationPhoneNumbers(to context: CXCallDirectoryExtensionContext) {}

}

extension CallDirectoryHandler: CXCallDirectoryExtensionContextDelegate {

    func requestFailed(for extensionContext: CXCallDirectoryExtensionContext, withError error: Error) {}

}

Swift 5.0 CallKit 扩展

class CallDirectoryHandler: CXCallDirectoryProvider {

    override func beginRequest(with context: CXCallDirectoryExtensionContext) {}

    private func addAllBlockingPhoneNumbers(to context: CXCallDirectoryExtensionContext) {}

    private func addOrRemoveIncrementalBlockingPhoneNumbers(to context: CXCallDirectoryExtensionContext) {}

    private func addAllIdentificationPhoneNumbers(to context: CXCallDirectoryExtensionContext) {}

    private func addOrRemoveIncrementalIdentificationPhoneNumbers(to context: CXCallDirectoryExtensionContext) {}

}

extension CallDirectoryHandler: CXCallDirectoryExtensionContextDelegate {

    func requestFailed(for extensionContext: CXCallDirectoryExtensionContext, withError error: Error) {}

}

【讨论】:

  • Swift 和 SwiftUI 是两个不同的类别,不要混淆。我认为您的意思是比较 UIKit 和 SwiftUI。
猜你喜欢
  • 2012-05-21
  • 1970-01-01
  • 1970-01-01
  • 2023-03-05
  • 1970-01-01
  • 2012-06-24
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多