缘起
在iOS11更新之后,自带「相机」应用支持直接识别二维码,根据「URL Schemes」调用相应的功能或APP,甚至是自定义在Workflow的动作。同时,iOS和Andriod均兼容Vcard 3.0格式的联系人文件。因此,将联系信息编制成Vcard 3.0格式后,写入二维码中,就可以借助「扫一扫」功能快速添加联系人信息,而无须再手动输入。
二维码名片的实现
准备Vcard格式的名片文件
在编制Vcard格式名片文件之前,需要了解Vcard的大致格式,以及各自属性的定义。我是通过以下两个方式对Vcard格式进行学习和调整的。
- 名片二维码通用技术规范(GB/T 31022-2014) 查看名片二维码通用技术规范中关于Vcard格式的解析和范例。
- iOS通讯录导出 通过手机上隔空投送(AirDrop)功能,将iOS通讯录中已有的联系人信息[1]分享至电脑,获得.vcf格式的名片文件。再利用文本编辑器(Sublime Text)打开,查看iOS系统下所兼容的格式。
Vcard 3.0格式属性大致如下:
属性含义 | 属性标识符 | 备注 |
---|---|---|
姓名 | N: | 结构化对象的每个分立单元用分号分隔,第一字段为姓氏,第二字段为人名,第三字段为别名。其中第三字段为可选项。 |
电话 | TEL: | 通过属性参数TYPE指定电话类型 |
电子邮件 | EMAIL: | |
单位 | ORG: | 各个子部分用分号分隔 |
通讯地址 | 通讯地址 | 通讯地址由一系列用分号分隔的地址子部分组成,地址成分依次表示为:邮政信箱,扩充地址,街道地址,当地名称,所处地区,邮政编码,以及国别字段。各地址字段可以为空,但一般不可省略“;”。 |
网址 | URL: | 属性值遵循RFC1738的规定 |
最终文本
BEGIN:VCARD
VERSION:3.0
N:(姓);(名)
TEL;type=CELL;type=VOICE:(手机号码)
TEL;type=WORK;type=VOICE:027-59516866
TEL;type=WORK;type=FAX:027-59516823
EMAIL;type=WORK;type=INTERNET;type=pref:[email protected]
URL:http://www.shlawyers.cn
ORG:湖北山河律师事务所
TITLE:律师
ADR;TYPE=DOM;type=WORK;type=POSTAL:;;新华路385号南达大楼11-13楼;武汉市;湖北省;430015;中国
END:VCARD
Workflow生成
其实上述文件格式以及二维码生成都可以借助网络上已有的在线工具实现,但为了个人信息安全性,尽量还是采取离线方式进行生成。因此,在我寻找二维码离线生成方案的时候,「vCard QR」给了我思路:Workflow里就有通用格式二维码生成功能。
所以,只需要在Workflow中新建一个workflow,将我们上面已经准备好的Vcard格式名片复制粘贴到该workflow的Text动作中,再添加一个「Generate QR Code」动作,就可以获得一个我们想要的二维码名片。
后续
大家在写邮件时往往会留上自己的联系方式,然而有两个尴尬问题,一是不能写得太复杂、冗长;二是个人信息写得过于详细不免造成一些不必要的麻烦。因此可以考虑将部分个人信息以二维码的形式放在邮件签名中。至于HTML5格式的邮件签名,目前正在寻找合适的版式中。
- 1.最好是自己想要分享的名片,可以一次性了解所有属性下的配置情况。 ↩