在 iOS 的 phone 来电中显示联系人图像
Get contact image displayed in incoming phone calls on iOS
我正在使用 Apple 的联系人框架插入新联系人。该图像是资产目录中的 .png。成功插入后,新联系人会在联系人应用程序中显示正确的图像。但是,当有来自新插入的联系人的来电时,图像不显示。
我找不到任何关于 iOS 显示联系人图像的确切情况的可靠信息。图像只有在用户手动设置时才会出现吗?我错过了什么?你能给我指出一份好的文件或给我一个解释吗? (唯一相关的信息在这篇文章中:https://support.apple.com/en-us/HT202158 但我满足了每一个要求,它可能不是紧密相关的。)
触点插入代码:
let newContact = CNMutableContact()
...
if let image = UIImage(named: "ContactImage") {
newContact.imageData = UIImagePNGRepresentation(image)
}
...
let saveRequest = CNSaveRequest()
saveRequest.addContact(newContact, toContainerWithIdentifier: nil)
do {
try contactStore.executeSaveRequest(saveRequest)
log.debug("New contact successfully saved!")
} catch let error as NSError {
log.error(error.localizedDescription)
} catch {
log.error("Unknown error happened during contact saving.")
}
我已经联系了 Apple 开发人员技术支持,他们的工程师认为这最好作为错误报告来处理。提交的错误 ID 是 26033574.
更新
Apple 问了我以下问题。
Can you please share the vcard and image you’re using on the contact card?
我与他们分享了 vCard,不幸的是里面没有图像,尽管在 iOS(和 macOS)上图像清晰可见。
我发现连续两次保存联系人就解决了问题。
- 保存联系人
- 将图像添加到联系人
- 重新保存联系人
我正在使用 Apple 的联系人框架插入新联系人。该图像是资产目录中的 .png。成功插入后,新联系人会在联系人应用程序中显示正确的图像。但是,当有来自新插入的联系人的来电时,图像不显示。
我找不到任何关于 iOS 显示联系人图像的确切情况的可靠信息。图像只有在用户手动设置时才会出现吗?我错过了什么?你能给我指出一份好的文件或给我一个解释吗? (唯一相关的信息在这篇文章中:https://support.apple.com/en-us/HT202158 但我满足了每一个要求,它可能不是紧密相关的。)
触点插入代码:
let newContact = CNMutableContact()
...
if let image = UIImage(named: "ContactImage") {
newContact.imageData = UIImagePNGRepresentation(image)
}
...
let saveRequest = CNSaveRequest()
saveRequest.addContact(newContact, toContainerWithIdentifier: nil)
do {
try contactStore.executeSaveRequest(saveRequest)
log.debug("New contact successfully saved!")
} catch let error as NSError {
log.error(error.localizedDescription)
} catch {
log.error("Unknown error happened during contact saving.")
}
我已经联系了 Apple 开发人员技术支持,他们的工程师认为这最好作为错误报告来处理。提交的错误 ID 是 26033574.
更新
Apple 问了我以下问题。
Can you please share the vcard and image you’re using on the contact card?
我与他们分享了 vCard,不幸的是里面没有图像,尽管在 iOS(和 macOS)上图像清晰可见。
我发现连续两次保存联系人就解决了问题。
- 保存联系人
- 将图像添加到联系人
- 重新保存联系人