Ios 如何实现一个;联络;来电屏幕上的按钮

Ios 如何实现一个;联络;来电屏幕上的按钮,ios,ios9,telephony,incoming-call,Ios,Ios9,Telephony,Incoming Call,最近我安装了一个名为“Ringo”的应用程序,他们所做的是另一回事。但当他们打电话给你时,我看到一个“联系人”按钮,我很惊讶。请参阅附加的屏幕截图 他们基本上在我的通讯录中创建一个带有图像的联系人,当他们使用我在这个屏幕上获得的一个添加号码拨打我的电话号码时,这个屏幕与通常的联系人来电屏幕不同。如果我为联系人设置了一个图像,当他们打电话给我时,我会得到该联系人的全屏图像。姓名居中对齐,并且没有指向该联系人的按钮 我期待着实现同样的目标。在地址簿中添加联系人时,这是某种设置吗?或者这是某种把戏 实

最近我安装了一个名为“Ringo”的应用程序,他们所做的是另一回事。但当他们打电话给你时,我看到一个“联系人”按钮,我很惊讶。请参阅附加的屏幕截图

他们基本上在我的通讯录中创建一个带有图像的联系人,当他们使用我在这个屏幕上获得的一个添加号码拨打我的电话号码时,这个屏幕与通常的联系人来电屏幕不同。如果我为联系人设置了一个图像,当他们打电话给我时,我会得到该联系人的全屏图像。姓名居中对齐,并且没有指向该联系人的按钮

我期待着实现同样的目标。在地址簿中添加联系人时,这是某种设置吗?或者这是某种把戏


实际上有两种类型的图像可以与联系人关联:

  • 一个“大”图像,只能在设备本身上设置,并且据推测不能通过iCloud同步。通过编程,可以通过
    ABPersonSetImageData

  • 较小的“照片”和“徽标”图像,可包含在vCard中(请参见中的
    photo
    logo

我相信前者是全屏显示的,而后者(或者可能只是两个图标中的一个)则显示为右上角较小的图标

我还没有找到一种直接的方法来设置它们,但是您可以生成一个vCard并将其传递给
ABPersonCreatePeopleInSourceWithVCardRepresentation
。您必须包含图像的URL或base-64表示形式


或者,它可能只是基于图片的大小,尽管考虑到视网膜大小等因素,我不知道确切的阈值是多少。

但这不仅仅是图像大小的问题。这张图片就像一个按钮,点击打开联系人详细信息页面。我很确定,只要图片显示在右上角而不是全屏,它就可以作为联系人的链接。通过导出联系人并检查vCard,您可以看到他们是如何做到这一点的。vCard包含一个
PHOTO
属性,在base64 encoding中以JPEG格式提供。仅供参考,图像是276 x 276 JPEG格式。