初始化
import CallKit
class HomeViewController: UIViewController, CXCallObserverDelegate {
public var cacheManager: TripCacheManager = TripCacheManager.init()
override func viewDidLoad() {
super.viewDidLoad()
self.callObserver.setDelegate(self, queue: DispatchQueue.main)
}
}
状态监听
func callObserver(_ callObserver: CXCallObserver, callChanged call: CXCall) {
print("call observer uuid: \(call.uuid)")
print("outgoing(拨打):\(call.isOutgoing) onHold(待接通):\(call.isOnHold) hasConnected(接通):\(call.hasConnected) hasEnded(挂断):\(call.hasEnded)")
}
}
该方法不能通过单一状态来判断当前状态,建议进行多值的判断。
取消监听
self.callObserver.setDelegate(nil, queue: DispatchQueue.main)
CallKit状态管理与监听实例
文章介绍了如何在iOS中使用CallKit进行电话状态监听,包括设置观察者、处理callChanged事件以及如何在不需要时取消监听。作者提醒,应避免仅依赖单一状态判断,提倡多值判断方法。
2136

被折叠的 条评论
为什么被折叠?



