我正在使用CallKit并开发一个带有呼叫目录扩展的应用程序。我已经按照本教程进行操作,我目前正在测试识别用户在其联系人中没有的号码的功能,并显示我的应用程序中的 ID,但是尽管可以完美地处理 1 到 9 位数字,例如123456,当我设置 10 位或更多数字的数字时,iOS 无法识别该号码。经过一天半的谷歌搜索,我没有找到任何相关信息。如果有人能帮助我,我将不胜感激。提前谢谢。
设置识别电话号码的方法:
private func addAllIdentificationPhoneNumbers(to context: CXCallDirectoryExtensionContext) {
// Retrieve phone numbers to identify and their identification labels from data store. For optimal performance and memory usage when there are many phone numbers,
// consider only loading a subset of numbers at a given time and using autorelease pool(s) to release objects allocated during each batch of numbers which are loaded.
//
// Numbers must be provided in numerically ascending order.
let allPhoneNumbers: [CXCallDirectoryPhoneNumber] = [ 123456789, 1_888_555_5555 ]
let labels = [ "ID test", "Local business" ]
for (phoneNumber, label) in zip(allPhoneNumbers, labels) {
context.addIdentificationEntry(withNextSequentialPhoneNumber: phoneNumber, label: label)
}
}
使用此代码,当我模拟带有号码 123456789 的呼叫时,iOS 会显示标签"ID test",这是正确的,但是如果我添加任何数字,例如末尾的 0:1234567890,iOS 在模拟呼叫时不会显示任何内容。我不知道我是否错过了什么。
好吧,经过一堆测试,我可以让它工作。关键是电话必须包含完整的国家/地区代码和区号。因此,例如 00_52_55_4567_8932 877 或 +52_55_4567_8932 都可以工作。但是 55_4567_8932 和 4567_8932 将不起作用。我希望这可以帮助将来的其他人。谢谢大家!