js生成vCard,以及格式参数详细说明

vCard 规范容许公开交换个人数据交换 (Personal Data Interchange PDI) 信息,在传统纸质商业名片可找到这些信息。规范定义电子名片(或叫vCard)的格式。 vCard 规范可作为各种应用或系统之间的交换格式。定义的格式与传送的方法无关。传送交换可能是文件系统,点对点交换的公共电话网络,以有线网络或无线传送的方式。用户能在互联网上直接利用vCard。电子邮件能转发在vCard中人信息。网页上很多用户填写的表格可自动使用vCard。

 简单案例源码:链接:http://pan.baidu.com/s/1c2Gepzi 密码:0ydg

中文简单介绍》》》》》》》》

预定义类型的用法
BEGIN 和 END 类型
Vcard内容必须以BEGIN:VCARD开头,以END:VCARD结尾
参考一个vcard的例子1:

 1 BEGIN:VCARD
 2 VERSION:2.1
 3 N:姓;名
 4 FN:姓名NICKNAME:nickName
 5 ORG:公司;部门
 6 TITLE:职位
 7 NOTE;ENCODING=QUOTED-PRINTABLE:=C6=E4=CB=FB
 8 TEL;WORK;VOICE:电话1
 9 TEL;WORK;VOICE:电话2
10 TEL;HOME;VOICE:电话1
11 TEL;HOME;VOICE:电话2
12 TEL;CELL;VOICE:
13 TEL;PAGER;VOICE:0755
14 TEL;WORK;FAX:传真
15 TEL;HOME;FAX:传真
16 ADR;WORK:;;单位地址;深圳;广东;433000;国家
17 LABEL;WORK;ENCODING=QUOTED-PRINTABLE:=B5=A5=CE=BB=B5=D8=D6=B7
18 =C9=EE=DB=DA
19 =B9=E3=B6=AB
20 433000
21 =B9=FA=BC=D2
22 ADR;HOME;POSTAL;PARCEL:;;街道地址;深圳;广东;433330;中国
23 LABEL;HOME;ENCODING=QUOTED-PRINTABLE:=BD=D6=B5=C0=B5=D8=D6=B7
24 =C9=EE=DB=DA
25 =B9=E3=B6=AB
26 433330
27 =D6=D0=B9=FA
28 URL:网址
29 URL:单位主页
30 EMAIL;PREF;INTERNET:邮箱地址
31 X-QQ:38394246
32 X-ICQ:icq
33 X-WAB-GENDER:2
34 REV:20060220T180305Z
35 END:VCARD

3.2 vcard标准通信薄基本格式

3.2.1 VCard 数据格式的标识符 – VCARD

预定义的值类型:uri, date, date-time, float
新增加的值类型:binary, phone-number, utc-offset and vcard value
预定义的类型:SOURCE, NAME, PROFILE, BEGIN, END.
新增加的类型:FN, N, NICKNAME, PHOTO, BDAY, ADR, LABEL, TEL, EMAIL,
MAILER, TZ, GEO, TITLE, ROLE, LOGO, AGENT, orG, CATEGORIES, NOTE,
PRODID, REV, SORT-STRING, SOUND, URL, UID, VERSION, CLASS, KEY
预定义的参数:ENCODING, VALUE, CHARSET, LANGUAGE, CONTEXT.
新增加的参数:TYPE

3.2.2 vCard数据格式行: 类型 [;参数]:值

ADR;HOME;POSTAL;PARCEL:;;街道地址;深圳;广东;433330;中国
ADR:是一个类型,表示是一条地址信息
“;”号是分隔符合
HOME;POSTAL;PARCEL表示参数,表示ADR的用途或者是类别
:;;街道地址;深圳;广东;433330;中国 表示是一个ADR值,地址值

3.2.3 预定义类型的用法  

3.2.3.1 BEGIN 和 END 类型

Vcard内容必须以BEGIN:VCARD开头,以END:VCARD结尾

3.2.3.2 标识类型

FN 类型定义

目的:vcard对象的名称,一个vcard对象必须包含FN类型。
例子:FN:Mr. John Q. Public, Esq.

N类型定义

目的:FN表示一个vcard对象的名称,N表示这个对象名称的组成部分
例子:

N:Public;John;Quinlan;Mr.;Esq.
N:Stevenson;John;Philip,Paul;Dr.;Jr.,M.D.,A.C.P.

各个组成部分可以用分号分号,每个组成部分可以用逗号。

NICKNAME类型定义

目的:表示别名
例子:

NICKNAME:Robbie
NICKNAME:Jim,Jimmie

PHOTO类型定义

目的:vcard对象的图像信息
例子:PHOTO;VALUE=uri:图片地址

PHOTO;ENCODING=b;TYPE=JPEG:MIICajCCAdOgAwIBAgICBEUwDQYJKoZIhvcN
AQEEBQAwdzELMAkGA1UEBhMCVVMxLDAqBgNVBAoTI05ldHNjYXBlIENvbW11bm ljYXRpb25zIENvcnBvcmF0aW9uMRwwGgYDVQQLExNJbmZvcm1hdGlvbiBTeXN0
<…remainder of “B” encoded binary data…>

如果使用内联的二进制数据表示图片信息,那么;ENCODING=b

BDAY类型定义

目的:表示出生日期
例子:

BDAY:1996-04-15
BDAY:1953-10-15T23:10:00Z
BDAY:1987-09-27T08:30:00-06:00

3.2.3.3 联系方式

ADR 类型定义

目的:是一个组合,用来表示一个地址信息,值类型是一个用分号分开的文本值
例子:ADR;TYPE=dom,home,postal,parcel:;;123 Main Street;Any Town;CA;91921-1234;A
ADR;HOME;POSTAL;PARCEL:;;街道地址;深圳;广东;444444;中国
组合由一下部分顺序的组成:

the post office box;
the extended address;
the street address;
the locality (e.g., city);
the region (e.g., state or province);
the postal code;
the country name

七个部分组成,如果,其他的一个部分没有,必须用分号分开。

type 参数的说明

  • “dom” 国内地址
  • “intl” 国际地址
  • “parcel”包裹递送地址
  • “home” 居住地址;
  • “work”工作地址;
  • “pref” 有多个地址的时候,优先的地址

缺省的”TYPE=intl,postal,parcel,work”,可以替换。

LABEL类型定义

目的:是一格式化的文本值,表示一个地址
例子:

LABEL;TYPE=dom,home,postal,parcel:Mr.John Q. Public, Esq.n
Mail Drop: TNE QBn123 Main StreetnAny Town, CA 91921-1234
nU.S.A.

type 参数的说明

  • “dom” 国内地址
  • “intl” 国际地址
  • “parcel”包裹递送地址
  • “home” 居住地址;
  • “work”工作地址;
  • “pref” 有多个地址的时候,优先的地址

缺省的”TYPE=intl,postal,parcel,work”,可以替换。

和ADR的不同是 ADR的值是用分号分开的数据,LABEL就是一个格式化的文本。

电话通信地址类型

TEL类型定义

目的:指定一个电话号码
例子:TEL;TYPE=work,voice,pref,msg:+1-213-555-1234
说明:值是一个规范的全球唯一的电话号码

TYPE参数的值有:

“home”表示家庭电话
“msg” 表示这个号码支持语音
“work” 工作电话
“pref” 表示多个电话中最喜欢使用的电话
“voice” 声音电话号码
“fax”传真号码
“cell” 表示手机电话
“video” 视频电话
“pager” 调度电话,估计是总机的电话
“bbs” 公开的广播系统的电话
“modem” 调制解调器电话
“car”汽车电话
“isdn” ISDN连接电话号码
“pcs” 个人通信服务电话

缺省是 “voice”。

TYPE参数的用法是TYPE=work;TYPE=voice或者"TYPE=work,voice",缺省值可以被重置:

“TYPE=work,home,voice,fax”.

EMAIL类型定义

目的:指定一个电子邮件
例子:

EMAIL;TYPE=internet:邮箱地址
EMAIL;TYPE=x400:邮箱地址
EMAIL;TYPE=internet,pref:邮箱地址

TYPE参数的使用

  • “internet” 表示一个internet 类型地址
  • “x400” 表示是一个 X.400 地址
  • “pref”最喜欢使用的邮件电子

缺省是"internet"

MAILER 类型定义

目的:指定一个电子邮件发送者
例子:MAILER:PigeonMail 2.1

3.2.3.4 地理类型

TZ类型定义

目的:时区信息
例子:

TZ:-05:00
TZ;VALUE=text:-05:00; EST; Raleigh/North America

缺省是一个utc-offset值。

GEO类型定义

目的:地理位置信息
例子:

GEO:37.386013;-122.082932
CEO 经度;纬度

3.2.3.5 组织类型

TITLE类型定义

目的:工作位置,工作职能(job title)
例子:TITLE:Director, Research and Development

ROLE 类型定义

目的:公司的职业(occupation)
例子ROLE:Programmer

LOGO类型定义

目的:公司logo,是一个图像信息
例子:LOGO;VALUE=uri:图片地址

LOGO;ENCODING=b;TYPE=JPEG:MIICajCCAdOgAwIBAgICBEUwDQYJKoZIhvcN AQEEBQAwdzELMAkGA1UEBhMCVVMxLDAqBgNVBAoTI05ldHNjYXBlIENvbW11bm
ljYXRpb25zIENvcnBvcmF0aW9uMRwwGgYDVQQLExNJbmZvcm1hdGlvbiBTeXN0
<…the remainder of “B” encoded binary data…>

说明:
TYPE 知道图像的格式,ENCODING=b 表示是二进制的数据流。
URI 表示是一个外部图像对象。

AGENT类型定义

目的:指定另外一个人替换他的个人行为
例子:

AGENT;VALUE=uri: CID:JQPUBLIC.part3.960129T083020.邮箱地址
AGENT:BEGIN:VCARDnFN:Susan ThomasnTEL:+1-919-555-
1234nEMAIL;INTERNET:主机地址nEND:VCARDn

说明:
缺省是一个 Vcard 对象,当时也可是一个 URI 指定的外部 Vcard 对象。

ORG类型定义

目的:表示一个组织的名称
例子:ORG:ABC, Inc.;North American Division;Marketing

3.2.3.6 解释类型

CATEGORIES类型定义
目的:vcard应用的分类信息
例子:

CATEGORIES:TRAVEL AGENT
CATEGORIES:INTERNET,IETF,INDUSTRY,INFORMATION TECHNOLOGY

NOTE 类型定义

目的:对 vcard 的注释和说明
例子:

NOTE:This fax number is operational 0800 to 1715
EST, Mon-Fri.

PRODID 类型定义

目的:指定创建Vcard对象的产品的ID
例子:PRODID:-//ONLINE DIRECTORY//NONSGML Version 1//EN
REV 类型定义

目的:指定当前Vcard的修改信息
例子:

REV:1995-10-31T22:27:10Z
REV:1997-11-15

SORT-STRING 类型定义

目的:指定家庭名称或者其他名称对FN和N类型排序

例子:

FN:Rene van der Harten
N:van der Harten;Rene;J.;Sir;R.D.O.N.
SORT-STRING:Harten
FN:Robert Pau Shou Chang
N:Pau;Shou Chang;Robert
SORT-STRING:Pau
FN:Osamu Koura
N:Koura;Osamu
SORT-STRING:Koura
FN:Oscar del Pozo
N:del Pozo Triscon;Oscar
SORT-STRING:Pozo
FN:Chistine d’Aboville
N:d’Aboville;Christine
SORT-STRING:Aboville

SOUND类型定义

目的:指定Vcard的数字声音信息,缺省是指定vcard的name类型的发音信息。
例子:

SOUND;TYPE=BASIC;VALUE=uri:CID:JOHNQPUBLIC.part8.
19960229T080000.地址
SOUND;TYPE=BASIC;ENCODING=b:MIICajCCAdOgAwIBAgICBEUwDQYJKoZIhvcN AQEEBQAwdzELMAkGA1UEBhMCVVMxLDAqBgNVBAoTI05ldHNjYXBlIENvbW11bm ljYXRpb25zIENvcnBvcmF0aW9uMRwwGgYDVQQLExNJbmZvcm1hdGlvbiBTeXN0 <…the remainder of “B” encoded binary data…>

说明:

  • 可以用URI指定一个外部声音二进制流
  • 可以是内置的声音二进制流,ENCODING=b

UID 类型定义

目的:指定一个全球唯一的个人或资源标识。
例子:UID:19950401-080045-40000F192713-0052
URL 类型定义
目的:指定Vcard 参考的路径。
例子:URL: 网址

VERSION 类型定义

目的:指定Vcard使用的vcard规范的版本。
例子: VERSION:3.0

3.2.3.7 Security 类型

CLASS类型定义

目的:指定访问Vcard对象的访问分级。
例子:

CLASS:PUBLIC
CLASS:PRIVATE
CLASS:CONFIDENTIAL

说明:安全分级需要参考目录服务的访问分级

KEY 类型定义

目的:指定Vcard的公共钥匙值(加密解密是使用)或者是授权认证。
例子:

KEY;ENCODING=b:MIICajCCAdOgAwIBAgICBEUwDQYJKoZIhvcNAQEEBQA
wdzELMAkGA1UEBhMCVVMxLDAqBgNVBAoTI05ldHNjYXBlIENbW11bmljYX
Rpb25zIENvcnBvcmF0aW9uMRwwGgYDVQQLExNJbmZvcm1hdGlvbiBTeXN0
ZW1zMRwwGgYDVQQDExNyb290Y2EubmV0c2NhcGUuY29tMB4XDTk3MDYwNj
E5NDc1OVoXDTk3MTIwMzE5NDc1OVowgYkxCzAJBgNVBAYTAlVTMSYwJAYD
VQQKEx1OZXRzY2FwZSBDb21tdW5pY2F0aW9ucyBDb3JwLjEYMBYGA1UEAx
MPVGltb3RoeSBBIEhvd2VzMSEwHwYJKoZIhvcNAQkBFhJob3dlc0BuZXRz
Y2FwZS5jb20xFTATBgoJkiaJk/IsZAEBEwVob3dlczBcMA0GCSqGSIb3DQ
EBAQUAA0sAMEgCQQC0JZf6wkg8pLMXHHCUvMfL5H6zjSk4vTTXZpYyrdN2
dXcoX49LKiOmgeJSzoiFKHtLOIboyludF90CgqcxtwKnAgMBAAGjNjA0MB
EGCWCGSAGG+EIBAQQEAwIAoDAfBgNVHSMEGDAWgBT84FToB/GV3jr3mcau
+hUMbsQukjANBgkqhkiG9w0BAQQFAAOBgQBexv7o7mi3PLXadkmNP9LcIP
mx93HGp0Kgyx1jIVMyNgsemeAwBM+MSlhMfcpbTrONwNjZYW8vJDSoi//y
rZlVt9bJbs7MNYZVsyF1unsqaln4/vy6Uawfg8VUMk1U7jt8LYpo4YULU7
UZHPYVUaSgVttImOHZIKi4hlPXBOhcUQ==

3.2.3.8 扩展类型

可以定义自己的类型,自己定义的类型需要以“x-”开头

比如例子中的信息:

X-QQ:000000
X-ICQ:icq
X-WAB-GENDER:2

posted @ 2017-04-01 18:12  YGCool  阅读(5046)  评论(0编辑  收藏  举报