# VCard **Repository Path**: zheng-huangjun/VCard ## Basic Information - **Project Name**: VCard - **Description**: VCard是电子名片的文件格式标准。它一般附加在电子邮件之后,但也可以用于其它场合(如在网际网路上相互交换)。 - **Primary Language**: Unknown - **License**: Apache-2.0 - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 17 - **Created**: 2022-04-28 - **Last Updated**: 2022-04-28 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # VCard ## 简介 > VCard是电子名片的文件格式标准。它一般附加在电子邮件之后,但也可以用于其它场合(如在网际网路上相互交换)。 > VCard可包含的信息有:姓名、地址资讯、电话号码、URL,logo,相片等。本库支持VCard标准2.0和3.0。 ![img1.png](img1.png) ## 下载安装 ```shell npm install @ohos/vcard --save ``` OpenHarmony npm环境配置等更多内容,请参考 [如何安装OpenHarmony npm包](https://gitee.com/openharmony-tpc/docs/blob/master/OpenHarmony_npm_usage.md) 。 ## 使用说明 ### 生成VCard ``` import {contact,VCardBuilder,VCardConfig} from "@ohos/vcard"; 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(); ``` > VCard生成结果 >> 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 ### 解析VCard文本 ``` import fileio from "@ohos.fileio"; import {VCardParserImpI_V20,VCardEntry,VCardInterpreter,VCardProperty} from "@ohos/vcard"; let vCardEntry = new VCardEntry() class MyVCardInterpreter implements VCardInterpreter{ onVCardStarted(): void { } onVCardEnded(): void { } onEntryStarted(): void { } onEntryEnded(): void { } onPropertyCreated(property: VCardProperty): void { vCardEntry.addProperty(property) } } let myParser = new VCardParserImpl_V20() myParser.addInterpreter(new MyVCardInterpreter() ) let fileDescriptor = fileio.openSync("./pathTo/00002.vcf", 0o100|0o2,0o666) myParser.parse(fileDescriptor) vCardEntry.consolidateFields() let displayName = vCardEntry.getDisplayName() let emails= vCardEntry.getEmailList() ``` ## 接口说明 `let builder=new VCardBuilder(VCardConfig.VCARD_TYPE_V21_GENERIC,"UTF-8");` 1. 昵称 `builder.appendNickNames()` 2. 名字 `builder.appendNameProperties()` 3. 电话 `builder.appendPhones()` 4. 邮件 `builder.appendEmails()` 5. 地址 `builder.appendPostals()` 6. 社交工具 `builder.appendIms()` 7. 网站地址 `builder.appendWebsites()` 8. 组织 `builder.appendOrganizations()` 9. 照片地址 `builder.appendPhotos()` 10. 备注 `builder.appendNotes()` 11. 群组 `builder.appendGroupMemberShip()` 12. 事件 `builder.appendEvents()` 13. 关系 `builder.appendRelation()` ## 兼容性 支持 OpenHarmony API version 8 及以上版本。 ## 目录结构 ```` |---- VCard | |---- entry # 示例代码文件夹 | |---- VCard # vcard库文件夹 | |---- index.ets # 对外接口 | |---- README.MD # 安装使用方法 ```` ## 贡献代码 使用过程中发现任何问题都可以提 [Issue](https://gitee.com/openharmony-tpc/VCard/issues) 给我们,当然,我们也非常欢迎你给我们发 [PR](https://gitee.com/openharmony-tpc/VCard/pulls) 。 ## 开源协议 本项目基于 [Apache License 2.0](https://gitee.com/openharmony-tpc/VCard/blob/master/LICENSE) ,请自由地享受和参与开源。