You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在Flutter中生成可用于保存联系人信息的二维码

解决方案:用qr_flutter生成联系人二维码

联系人二维码的核心是vCard格式的文本内容——二维码本身仍是文本类型,但扫码工具识别到vCard格式后会自动触发保存联系人的操作。你完全可以用qr_flutter实现需求,只需先构建符合标准的vCard字符串,再传入生成二维码即可。

步骤1:构建vCard格式字符串

vCard是通用的联系人信息交换格式,以下是基础示例,可根据需求扩展字段:

BEGIN:VCARD
VERSION:3.0
FN:张三
TEL;TYPE=CELL:+8613800138000
EMAIL:zhangsan@example.com
ADR;TYPE=WORK:;;北京市朝阳区XX大厦;;100020;中国
ORG:XX科技有限公司
TITLE:产品经理
END:VCARD

关键字段说明:

  • BEGIN:VCARD 和 END:VCARD:格式首尾标记,必须包含
  • VERSION:3.0:指定vCard版本,推荐用3.0兼容性最好
  • FN:联系人全名
  • TEL;TYPE=CELL:手机号码,TYPE可标记为WORK(工作电话)等
  • EMAIL:邮箱地址
  • ADR:联系地址,分号分隔不同部分(国家/地区、城市、街道等)
  • ORG:所属公司
  • TITLE:职位

步骤2:用qr_flutter生成二维码

将构建好的vCard字符串作为data参数传入QrImageView即可:

import 'package:qr_flutter/qr_flutter.dart';

class ContactQrPage extends StatelessWidget {
  @override
  Widget build(BuildContext context) {
    // 自定义联系人信息的vCard
    final String contactVCard = '''BEGIN:VCARD
VERSION:3.0
FN:张三
TEL;TYPE=CELL:+8613800138000
EMAIL:zhangsan@example.com
ADR;TYPE=WORK:;;北京市朝阳区XX大厦;;100020;中国
ORG:XX科技有限公司
TITLE:产品经理
END:VCARD''';

    return Scaffold(
      appBar: AppBar(title: Text('联系人二维码')),
      body: Center(
        child: QrImageView(
          data: contactVCard,
          version: QrVersions.auto,
          size: 250.0,
          backgroundColor: Colors.white,
        ),
      ),
    );
  }
}

注意事项

  • 确保vCard格式严格遵循标准,不要出现多余的换行或空格,否则扫码工具可能无法识别
  • 不同扫码工具对vCard字段的支持略有差异,优先保留FN、TEL这类核心字段
  • 若需要动态生成(比如从用户输入获取联系人信息),可通过字符串拼接构建vCard内容

内容的提问来源于stack exchange,提问作者Vipul waghmare

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.28 16:38:19