You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
MyQRCode/docs/HISTORY_FEATURE_README.md

2.1 KiB

历史记录功能实现说明

🎯 功能概述

MyQrCode 应用添加了完整的历史记录功能,支持本地数据保存,包含扫描和手动创建两种数据来源,涵盖条形码和二维码的多种类型。

🔧 主要功能特性

1. 数据来源支持

  • 扫描获得: 通过相机扫描获得的二维码/条形码
  • 手动创建: 用户手动输入的二维码/条形码内容

2. 数据类型支持

条形码类型

  • EAN-13: 13位欧洲商品编码
  • EAN-8: 8位欧洲商品编码
  • UPC-E: 压缩版通用产品代码
  • Code 39: 39码
  • Code 128: 128码
  • PDF417: PDF417码

二维码类型

  • WiFi: WiFi网络配置
  • Email: 电子邮件
  • URL: 网址链接
  • Phone: 电话号码
  • SMS: 短信
  • vCard: 电子名片
  • MeCard: MeCard格式
  • Text: 纯文本
  • Location: 地理位置
  • Calendar: 日历事件
  • Instagram: Instagram链接
  • Facebook: Facebook链接
  • Spotify: Spotify音乐
  • X: X链接
  • WhatsApp: WhatsApp消息
  • Viber: Viber消息
  • Snapchat: Snapchat链接
  • TikTok: TikTok链接

3. 数据字段

  • 内容: 二维码/条形码的实际内容
  • 数据类型: 条形码或二维码
  • 具体类型: 具体的编码格式
  • 数据来源: 扫描获得或手动创建
  • 创建时间: 记录创建的时间戳
  • 收藏状态: 是否标记为收藏

🐛 兼容性问题修复

问题描述

CreateCodeView.swift 中使用了 iOS 16.0+ 的 API导致在 iOS 15.6 部署目标下编译失败:

'init(_:text:axis:)' is only available in iOS 16.0 or newer
'lineLimit' is only available in iOS 16.0 or newer

修复方案

将 iOS 16.0+ 的 API 替换为 iOS 15.6 兼容的替代方案:

// ❌ iOS 16.0+ 的写法
TextField("请输入内容", text: $content, axis: .vertical)
    .lineLimit(3...6)

// ✅ iOS 15.6 兼容的写法
TextField("请输入内容", text: $content)
    .frame(minHeight: 80)

修复后的效果

  • 保持了多行文本输入的功能
  • 通过 minHeight: 80 提供足够的输入空间
  • 确保在 iOS 15.6 及以上版本正常工作