如何使用CallKit框架通过编程方式获取来电电话号码。我尝试使用CXCallObserver类,但没有用。有什么建议最有帮助...
当使用iOS 10中的CallKit的呼叫拦截和识别功能时,您的应用程序的通话目录扩展会在来电之前加载要阻止或识别的电话号码,并由系统存储这些电话号码。然后,当来电到达时,系统会查询已存储的数据,并根据提供的标签在来电用户界面中阻止或识别来电。
出于隐私和性能方面的考虑,当有来电到达时,不会启动通话目录应用程序扩展,应用程序扩展也无法检索来电的电话号码。
iOS 10 中引入的 Call Directory 扩展与 iOS 9 中引入的 Safari 内容拦截器扩展类似。您的扩展必须提供一个电话号码列表(在 Safari 的扩展中,它是一个 json 文件),这些号码将由 iOS 存储,并在有来电事件时,系统会检查您的扩展提供的列表(就像 Safari 在加载网站之前检查 json 文件指定的规则一样),前提是您的扩展此时处于活动状态。
因此,使用此功能创建类似 Caller ID 的应用程序是不可能的,因为事情并不是动态的。 此外,您可以在列表中提供的电话号码数量上存在限制,希望这将在 iOS 10 发布时公布。