Apple 通讯录透明头像格式 vCard(CardDAV)

iOS+通讯录+vCard+CardDAV

Posted by Carl on March 25, 2024

为了这条通讯录透明头像而发现的新知识点

最开始是在 GitHub 上添加一个黄页通讯录号码,会有一些通讯录在 iPhone 中短信显示透明头像,感觉挺不错的,好奇怎么实现的,就折腾出来了方法。

GitHub 通讯录黄页

vCards 中国黄页 - 优化 iOS/Android 来电、信息界面体验

https://user-images.githubusercontent.com/2666735/59692672-0b6bdf00-9218-11e9-881e-5856e263f3aa.png

透明头像文件格式

搭建私人CardDAV/CalDAV服务_通讯录/日历同步服务

  • 把 Quoted-Printable 编码,整理成一行。 Quoted-Printable编码的基本方法是:输入数据在33-60、62-126范围内的,直接输出;其它的需编码为“=”加两个字节的HEX码(大写)。为保证输出行不超过规定长度,可在行尾加“=/r/n”序列作为软回车。
  • PHOTO 项中(如果有头像),要把 ENCODING=BASE64 改为 ENCODING=B 才行。

修改为下面的内容,才行,

1
2
3
4
5
6
7
8
9
BEGIN:VCARD
VERSION:2.1
N;CHARSET=UTF-8;ENCODING=QUOTED-PRINTABLE:;=E6=B5=8B=E8=AF=95=E6=B5=8B=E8=AF=95=E6=B5=8B=E8=AF=95=E6=B5=8B=E8=AF=95=E6=B5=8B=E8=AF=95=E6=B5=8B;;;
FN;CHARSET=UTF-8;ENCODING=QUOTED-PRINTABLE:=E6=B5=8B=E8=AF=95=E6=B5=8B=E8=AF=95=E6=B5=8B=E8=AF=95=E6=B5=8B=E8=AF=95=E6=B5=8B=E8=AF=95=E6=B5=8B
TEL;CELL:12 345 678 90
PHOTO;ENCODING=B;JPEG:/9j/4AAQS....
 2wBDAQcHBwo....

END:VCARD

才能成功上传。

在线转码工具

图片base64编码