如何调用我们的应用程序并从来电中获取详细信息?

时间:2017-04-26 05:00:35

标签: ios objective-c xcode callkit

如果我的应用程序中保存了任何号码并且该用户在我的iPhone上给我打电话,那么我想用屏幕调用我的应用程序,用户可以在其中填写有关该呼叫的信息。(如呼叫持续时间,来电者姓名和一些应用程序特定的详细信息)

请指导我如何在iOS中记录通话。我不确定Apple是否允许我们通过普通拨号器而不是我的应用程序获取有关呼叫的信息。

我找到了这个链接:Call history, SMS history, Email history in iOS 但是如果用户联系号码保存在我的应用程序中,我想在来电时调用我的应用程序。

请帮助我或建议我解决方案或是否可行。

1 个答案:

答案 0 :(得分:2)

iOS 10 +:

使用Callkit,并查看呼叫目录扩展名

  

调用以下方法:仅在系统启动应用程序时   扩展而不是每个单独的呼叫,您必须指定呼叫   一次识别信息;例如,你做不到   请求Web服务查找有关来电的信息。

使用addIdentificationEntry(withNextSequentialPhoneNumber:label:)方法。

class CustomCallDirectoryProvider: CXCallDirectoryProvider {
    override func beginRequest(with context: CXCallDirectoryExtensionContext) {
        let labelsKeyedByPhoneNumber: [CXCallDirectoryPhoneNumber: String] = [ … ]
        for (phoneNumber, label) in labelsKeyedByPhoneNumber.sorted(by: <) {
            context.addIdentificationEntry(withNextSequentialPhoneNumber: phoneNumber, label: label)        
        }

        context.completeRequest()
    }
}

根据Apple的说法:

  

识别来电者当电话收到来电时,   系统首先咨询用户的联系人以找到匹配的电话   数。如果未找到匹配项,系统将查询您应用的呼叫   目录扩展,用于查找匹配条目以识别电话   数。这对于维护联系人列表的应用程序很有用   对于与系统联系人分开的用户,例如社交用户   网络,或用于识别可能从中发起的来电   在应用程序内,例如客户服务支持或交付   通知。例如,考虑与Jane成为朋友的用户   一个社交网络应用程序,但谁没有她的电话号码   他们的联系。社交网络应用程序有一个呼叫目录应用程序   扩展,下载并添加所有的电话号码   用户的朋友。因此,当用户接到来电时   来自Jane,系统显示类似“(App Name)来电显示:   Jane Appleseed“而不是”Unknown Caller“。