导出和导入 Vcard
Posted
技术标签:
【中文标题】导出和导入 Vcard【英文标题】:Exporting and importing Vcard 【发布时间】:2011-08-07 07:36:53 【问题描述】:我想允许用户将他们的联系人(电子邮件)导入我的 php 应用程序。我正在考虑 vcard 格式,因为大多数手机都允许导出 vcard。现在我有一些疑问
iphone、android、blackberry、symbian 是否允许导出为 vcard,并且所有的 vcard 格式都相同。
您也可以导出 Gmail 联系人电子名片,格式相同
你可以将苹果邮件、outlook、雷鸟联系人导出为电子名片
【问题讨论】:
【参考方案1】:我认为如果他们遵守标准(不能确定没有足够幸运拥有所有这些设备),那么是的,他们应该导出相同的标准。
来自http://en.wikipedia.org/wiki/VCard
以下是包含一个人信息的 VCard 文件示例:
vCard 2.1:
BEGIN:VCARD
VERSION:2.1
N:Gump;Forrest
FN:Forrest Gump
ORG:Bubba Gump Shrimp Co.
TITLE:Shrimp Man
TEL;WORK;VOICE:(111) 555-1212
TEL;HOME;VOICE:(404) 555-1212
ADR;WORK:;;100 Waters Edge;Baytown;LA;30314;United States of America
LABEL;WORK;ENCODING=QUOTED-PRINTABLE:100 Waters Edge=0D=0ABaytown, LA 30314=0D=0AUnited States of America
ADR;HOME:;;42 Plantation St.;Baytown;LA;30314;United States of America
LABEL;HOME;ENCODING=QUOTED-PRINTABLE:42 Plantation St.=0D=0ABaytown, LA 30314=0D=0AUnited States of America
EMAIL;PREF;INTERNET:forrestgump@example.com
REV:20080424T195243Z
END:VCARD
vCard 3.0:
BEGIN:VCARD
VERSION:3.0
N:Gump;Forrest
FN:Forrest Gump
ORG:Bubba Gump Shrimp Co.
TITLE:Shrimp Man
PHOTO;VALUE=URL;TYPE=GIF:http://www.example.com/dir_photos/my_photo.gif
TEL;TYPE=WORK,VOICE:(111) 555-1212
TEL;TYPE=HOME,VOICE:(404) 555-1212
ADR;TYPE=WORK:;;100 Waters Edge;Baytown;LA;30314;United States of America
LABEL;TYPE=WORK:100 Waters Edge\nBaytown, LA 30314\nUnited States of America
ADR;TYPE=HOME:;;42 Plantation St.;Baytown;LA;30314;United States of America
LABEL;TYPE=HOME:42 Plantation St.\nBaytown, LA 30314\nUnited States of America
EMAIL;TYPE=PREF,INTERNET:forrestgump@example.com
REV:20080424T195243Z
END:VCARD
vCard 标准的 2.1 版得到电子邮件客户端的广泛支持。 vCard 格式的 3.0 版是 IETF 标准跟踪提案,包含在 RFC 2425 和 RFC 2426 中。
【讨论】:
【参考方案2】:ios 提供任何机制来访问移动 Safari 中的联系人数据库。批量导出联系人的唯一方法是通过本机应用程序。
一种非常从 iOS 一次导出联系人的复杂方法是通过电子邮件。 iOS 让用户可以轻松地将 .vcard 文件作为电子邮件附件发送。
工作流程可以这样进行:
-
让用户选择通过电子邮件导出联系人
为您服务器上的用户生成唯一的电子邮件地址。
类似于 flickr 的电子邮件地址的帖子
和其他人提供的东西类似于
contacts-export+[unique string]@exmple.com
指示用户将所述电子邮件地址添加到 iOS 联系人数据库
(点击并按住电子邮件地址 -> Create New Contact
)
指示用户打开“联系人”应用找到他们希望导出的联系人并为每个联系人选择Share Contact
-> Email
-> 发送到之前保存的电子邮件地址知识库>
创建一个 cron 作业以定期检查和处理这些传入消息
对于最终用户和开发人员来说,这一切似乎都需要做很多工作。话虽这么说,如果您的用户足够精明,可以处理复杂的工作流程,那么对于一次性联系人导出来说,它肯定比复制/粘贴要方便得多,尤其是对于任何只有一个或两个以上相关字段的联系人。
我不确定 Android、Blackberry 等在导出方面支持什么。
【讨论】:
以上是关于导出和导入 Vcard的主要内容,如果未能解决你的问题,请参考以下文章
使用适用于 Android 的 ez-vcard 库导入 VCard 文件