# VCard **Repository Path**: tian-pan/VCard ## Basic Information - **Project Name**: VCard - **Description**: No description available - **Primary Language**: Unknown - **License**: Apache-2.0 - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 15 - **Created**: 2022-03-18 - **Last Updated**: 2022-03-18 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # VCard ## 用途 > vCard是电子名片的文件格式标准。它一般附加在电子邮件之后,但也可以用于其它场合(如在网际网路上相互交换)。vCard可包含的信息有:姓名、地址资讯、电话号码、URL,logo,相片等。 ## 使用方法 ### 生成 ``` let myCard= new contact.Contact() let nickName = new contact.NickName; nickName.nickName="昵称小张" myCard.nickName = nickName let builder = new VCardBuilder(VCardConfig.VCARD_TYPE_V21_GENERIC,"UTF-8"); builder.appendNickNames(myCard) let result = builder.toString() ``` > 结果 >> BEGIN:VCARD VERSION:2.1 X-ANDROID-CUSTOM;CHARSET=UTF-8;ENCODING=QUOTED-PRINTABLE:vnd.android.cursor.item/nickname;=e6=98=b5=e7=a7=b0=e5=b0=8f=e5=bc=a0;;;;;;;;;;;;;; END:VCARD #### 添加电话号码 ``` let myCard=new contact() let builder=new VCardBuilder(VCardConfig.VCARD_TYPE_V21_GENRIC,"UTF-8"); let privateEmail=createEmail("o@private.com",null,contact.Email.EMAIL_HORK,null) let workEmail=createEmail("o@company.com","JustinZhang1",contact.Email.EMAIL_WORK,null) let otherEmail=createEmail("o@other.com","JustinZhang2",contact.Email.EMAIL_OTHER,null) let customEmail=createEmail("o@other.com","JustinZhang3",contact.Email.CUSTOM_LABEL,"my_eamil_custom@sss.com")//使用特殊字符 myCard.emails=[privateEmail,wokEmail,customEmail] builder.appendEmails(myCard) ``` #### 下拉框 ``` let myCard=new contact.Contact() let builder=new VCardBuilder(VCardConfig.VCARD_TYPE_V21_GENERIC,"UTF-8"); let home=createphone(contact.phoneNumber.NUM_HOME,"HOME","一二")//住宅 let mobile=createphone(contact.phoneNumber.NUM_MOBILE","MOBILE","13764220250")//手机 let pager=createphone(contact.phoneNumber.NUM_PAGER","PAGER","134 65")//寻呼机 let faxHome=createphone(contact.phoneNumber.NUM_FAX_HOME","FAX_HOME","67888889")//住宅传真 let faxWork=createphone(contact.phoneNumber.NUM_FAX_WORK","FAX_WORK","67888890")//单位传真 let company=createphone(contact.phoneNumber.NUM_FAX_COMPANY_MAIN","COMPANY_MAIN","57726788")//总机 let work=createphone(contact.phoneNumber.NUM_WORK","work","57726799")//单位 let other=createphone(contact.phoneNumber.NUM_OTHER","other","57726791")//其他 let custom=createphone(contact.phoneNumber.CUSTOM_LABEL","POLICE","110")//自定义 myCard.phoneNumbers=[home,mobile,pager,faxHome,faxWork,company,work,other,custom] builder.appendPhones=(myCard,null) console.log(builder.toString()) let myCard=new contact() let builder=new VCardBuilder(VCardConfig.VCABD_TYPE_V21_GENERIC,"UTF_8") let assistant=creatRelation(contact.Relation.RELATION_ASSISIANT,null,'助理') let brother=creatRelation(contact.Relation.RELATION_BROTHER,null,"兄弟") let child=creatRelation(contact.Relation.RELATION_CHILD,null,"子女") let domesticPartner=creatRelation(contact.Relation.RELATION_DOMESTIC_PARTNER,null,"国内伙伴") let father=creatRelation(contact.Relation.RELATION_FATHER,null,"father") let friend=creatRelation(contact.Relation.RELATION_FRIEND,null,"friend") let manager=creatRelation(contact.Relation.RELATION_MANAGER,null,"经理") let mothar=creatRelation(contact.Relation.RELATION_MOTHER,null,"母亲") let parent=creatRelation(contact.Relation.RELATION_PARENT,null,"父母") let partner=creatRelation(contact.Relation.RELATION_PARTNER,null,"搭档") let referred=creatRelation(contact.Relation.RELATION_REFERRED_BY,null,"refrered") let sister=creatRelation(contact.Relation.RELATION_RElATIVE,null,"亲戚") let relative=creatRelation(contact.Relation.RELATION_RElATIVE,null,"姐妹") let spouse=creatRelation(contact.Relation.RELATION_SISTER,null,"母亲") let custom=creatRelation(contact.Relation.CUSTOM_LABEL,"custom","my custom") let relations=[assistant,brothr,child,domesticPartner,father,friend,manager,mothar,parent,partner,referred,sister,relative,spouse,custom] myCard.relations=relations builder.appendRelation(myCard) console.log(builder.toString) ``` #### 特殊字符 ``` let myCard=new contact.Contact() let builder=new VCardbuilder(VCardConfig.VCARD_TYPE_V21_GENRIC,'UTF-8') let note =new contact.Note() note.noteConteContent=""Hellp means 你好 in Chinese" myCard.note=note buldder.appenNotes(myCard) console.log(builder.toString()) let myCard=new contact.Contact() let builder =new VCardBuilder(VCardConfig.VCARD_TYPE_V21_GENERIC,"UTF-8"); myCard.groups=[createGroup(0,"groupOne"),createGroup(1,groupTwo)] builder.appendGroupMemberShip(myCard) console.log(builder.toString()) ``` ### 解析 ``` let vCardEntry = new VCardEntry() class i implements VCardInterpreter{ onVCardStarted(): void { } onVCardEnded(): void { } onEntryStarted(): void { } onEntryEnded(): void { } onPropertyCreated(property: VCardProperty): void { vCardEntry.addProperty(property) } } let p = new VCardParserImpl_V21() p.addInterpreter(new i() ) let fileDescriptor = fs.openSync("./pathTo/00003.vcf", "r") p.parse(fileDescriptor) vCardEntry.consolidateFields() let displayName = vCardEntry.getDisplayName() let emails= vCardEntry.getEmailList() ``` #### 安装 ```` npm config set @ohos:registry=https://repo.harmonyos.com/npm/ npm install @ohos/vcard ```` #### 导入类 ```` import {contact} from "@ohos/vcard"; import {VCardBuilder} from "@ohos/vcard"; import router from "@system.router"; import {VCardConfig} from "@ohos/vcard"; import {VCardParser ImpI_V21} from "@ohos/vcard"; import {VCardEntry} from "@ohos/vcard"; import {VCardInterpreter} from "@ohos/vcard"; import {VCardProperty} from "@ohos/vcard"; import {TexUtils} from "@ohos/vcard"; ````