如何从Flutter插件vCard中获取数据

问题描述

因此,我正在尝试使Flutter应用程序显示从电子名片中提取的联系信息。但是我在如何过滤掉名字,姓氏,电话号码等数据时遇到了麻烦。这就是提取的vcard数据的样子

I/Flutter (11933): BEGIN:VCARD
I/Flutter (11933): VERSION:3.0
I/Flutter (11933): FN;CHARSET=UTF-8:FirstName MiddleName LastName
I/Flutter (11933): N;CHARSET=UTF-8:LastName;FirstName;MiddleName;;
I/Flutter (11933): NICKNAME;CHARSET=UTF-8:
I/Flutter (11933): BDAY:20201011
I/Flutter (11933): TEL;TYPE=WORK,VOICE:Work Phone Number
I/Flutter (11933): ORG;CHARSET=UTF-8:ActivSpaces Labs
I/Flutter (11933): URL;CHARSET=UTF-8:https://github.com/valerycolong
I/Flutter (11933): NOTE;CHARSET=UTF-8:Notes on contact
I/Flutter (11933): REV:2020-10-11T15:35:06.168221
I/Flutter (11933): END:VCARD

有人可以帮我吗?我尝试使用vcard_parser插件,由于我是新手,它的输出也让我很困惑

I/Flutter (11933): {BEGIN: VCARD,VERSION: 3.0,FN;CHARSET=UTF-8: {name: UTF-8,value: FirstName MiddleName LastName},N;CHARSET=UTF-8: {name: UTF-8,value: LastName},NICKNAME;CHARSET=UTF-8: {name: UTF-8,value: },BDAY: 20201011,TEL;TYPE=WORK,VOICE: {name: WORK,VOICE,value: Work Phone Number},ORG;CHARSET=UTF-8: {name: UTF-8,value: ActivSpaces Labs},NOTE;CHARSET=UTF-8: {name: UTF-8,value: Notes on contact},END: VCARD}

感谢您的帮助!

解决方法

尝试Simple Vcard Parser 这是用于从VCard提取数据的flutter程序包。

更新您的 pubspec.yaml

  dependencies:
  ...
  simple_vcard_parser: ^0.1.3

用法:

import 'package:simple_vcard_parser/simple_vcard_parser.dart';
VCard vc = VCard(myVCard);
print(vc.version); 
print(vc.formattedName); 
print(vc.organisation); 
print(vc.title); 
print(vc.email); 
print(vc.typedTelephone); 
print(vc.name);