# 二维码信息详情页面

## 🎯 概述

成功创建了二维码信息详情页面，提供完整的二维码信息展示、解析和操作功能。该页面支持所有常见的二维码格式，包括 Wi-Fi、Email、URL、Phone、SMS、vCard、MeCard、Calendar、社交媒体等。

## ✨ 主要功能

### 1. **二维码图片展示**
- 自动生成二维码图片
- 高清显示，支持缩放
- 美观的圆角和阴影效果
- 加载状态指示器

### 2. **二维码类型识别**
- 自动识别二维码类型
- 显示对应的图标和名称
- 支持所有预定义的二维码类型

### 3. **智能内容解析**
- 自动解析二维码内容
- 提取关键信息并格式化显示
- 支持多种编码格式

### 4. **操作功能**
- 收藏/取消收藏
- 复制内容到剪贴板
- 分享二维码内容
- 打开链接（URL类型）

## 🔧 技术实现

### 1. **二维码解析器 (QRCodeParser)**

#### 支持的格式类型
```swift
// Wi-Fi 网络
WIFI:T:<加密类型>;S:<SSID>;P:<密码>;;
示例: WIFI:T:WPA;S:MyNetwork;P:MyPassword;;

// 邮箱地址
mailto:<邮箱地址>
示例: mailto:example@example.com

// 网址链接
<网址>
示例: https://www.example.com

// 电话号码
tel:+<国家代码><电话号码>
示例: tel:+8613800138000

// 短信
SMSTO:<电话号码>:<短信内容>
示例: SMSTO:+8613800138000:Hello

// 联系人信息 (vCard)
BEGIN:VCARD
VERSION:3.0
N:Doe;John;;;
FN:John Doe
TEL;TYPE=WORK,CELL:(123) 456-7890
EMAIL;TYPE=PREF,INTERNET:john.doe@example.com
ORG:Example Company
TITLE:Software Engineer
ADR;TYPE=WORK:;;123 Main St;Anytown;CA;12345;USA
URL:https://example.com
END:VCARD

// 支持vCard 2.1到3.0的自动转换

// 联系人信息 (MeCard)
MECARD:N:<姓>,<名>;NICKNAME:<昵称>;TEL:<电话>;EMAIL:<邮箱>;ORG:<公司>;ADR:<地址>;URL:<网站>;BDAY:<生日>;NOTE:<备注>;;
示例: MECARD:N:Doe,John;NICKNAME:Johnny;TEL:+1234567890;EMAIL:john.doe@example.com;ORG:Example Company;ADR:123 Main St,Anytown,CA,12345,USA;URL:https://example.com;BDAY:19820908;NOTE:Software Engineer;;

// 文本内容
<文本内容>
示例: Hello, this is a text message!

// 地理位置
geo:<纬度>,<经度>
示例: geo:37.7749,-122.4194

// 日历事件
BEGIN:VEVENT
SUMMARY:Meeting
DTSTART:20230101T090000Z
DTEND:20230101T100000Z
LOCATION:Office
END:VEVENT

// 社交媒体
Instagram: instagram://user?username=<用户名>
Facebook: fb://profile/<用户ID>
Spotify: spotify:search:<艺术家>;<歌曲>
X: twitter://user?screen_name=<用户名>
WhatsApp: whatsapp://send?phone=<电话号码>
Viber: viber://add?number=<电话号码>
Snapchat: snapchat://<用户名>
TikTok: https://www.tiktok.com/@<用户名>
```

#### 解析逻辑
```swift
static func parseQRCode(_ content: String) -> ParsedQRData {
    let trimmedContent = content.trimmingCharacters(in: .whitespacesAndNewlines)
    
    // 按优先级顺序检查各种格式
    if trimmedContent.hasPrefix("WIFI:") {
        return parseWiFi(trimmedContent)
    }
    
    if trimmedContent.hasPrefix("mailto:") {
        return parseEmail(trimmedContent)
    }
    
    // ... 其他格式检查
    
    // 默认为文本类型
    return ParsedQRData(
        type: .text,
        title: "文本信息",
        subtitle: trimmedContent.count > 50 ? String(trimmedContent.prefix(50)) + "..." : trimmedContent,
        icon: "text.quote"
    )
}
```

### 2. **详情页面结构 (QRCodeDetailView)**

#### 页面布局
```swift
ScrollView {
    VStack(spacing: 20) {
        // 1. 二维码图片
        qrCodeImageView
        
        // 2. 二维码类型信息
        qrCodeTypeSection
        
        // 3. 解析后的详细信息
        parsedInfoSection
        
        // 4. 原始内容
        originalContentSection
        
        // 5. 操作按钮
        actionButtonsSection
    }
    .padding()
}
```

#### 主要组件
- **qrCodeImageView**: 二维码图片展示，支持加载状态
- **qrCodeTypeSection**: 显示二维码类型和图标
- **parsedInfoSection**: 显示解析后的结构化信息
- **originalContentSection**: 显示原始内容，支持滚动
- **actionButtonsSection**: 操作按钮，包括收藏、复制、打开链接等

### 3. **集成到历史记录**

#### 导航方式
```swift
// 在 HistoryItemRow 中添加点击事件
.onTapGesture {
    if item.dataType == DataType.qrcode.rawValue {
        showingDetail = true
    }
}

// 使用 sheet 展示详情页面
.sheet(isPresented: $showingDetail) {
    if item.dataType == DataType.qrcode.rawValue {
        NavigationView {
            QRCodeDetailView(historyItem: item)
        }
    }
}
```

## 🎨 用户界面设计

### 1. **视觉层次**
- 使用卡片式设计，每个信息块独立显示
- 统一的圆角和阴影效果
- 清晰的信息分组和标题

### 2. **颜色系统**
- 蓝色：二维码类型
- 橙色：类型标签
- 绿色：解析信息
- 紫色：原始内容
- 红色：收藏状态

### 3. **图标系统**
- 使用 SF Symbols 图标
- 每个类型都有对应的图标
- 图标颜色与内容类型匹配

### 4. **响应式设计**
- 支持不同屏幕尺寸
- 自适应内容高度
- 滚动视图处理长内容

## 🚀 功能特性

### 1. **智能识别**
- 自动识别二维码格式
- 提取关键信息
- 格式化显示内容

### 2. **交互操作**
- 点击历史记录项进入详情页
- 收藏/取消收藏
- 复制内容到剪贴板
- 分享二维码内容
- 直接打开链接

### 3. **数据同步**
- 收藏状态实时更新
- 与 Core Data 数据同步
- 支持离线查看

### 4. **用户体验**
- 加载状态指示
- 操作反馈提示
- 错误处理
- 流畅的动画效果

## 📱 使用流程

### 1. **查看二维码详情**
1. 在历史记录页面点击二维码记录
2. 系统自动跳转到详情页面
3. 查看二维码图片、类型和解析信息

### 2. **收藏二维码**
1. 在详情页面点击收藏按钮
2. 系统显示收藏成功提示
3. 收藏状态同步到历史记录

### 3. **复制内容**
1. 点击"复制内容"按钮
2. 系统显示复制成功提示
3. 内容已复制到剪贴板

### 4. **打开链接**
1. 如果是URL类型的二维码，显示"打开链接"按钮
2. 点击按钮直接打开链接
3. 支持系统默认浏览器

### 5. **分享内容**
1. 点击右上角分享按钮
2. 系统显示分享表单
3. 选择分享方式和目标应用

## 🔍 支持的二维码类型

### 1. **网络相关**
- **Wi-Fi**: 网络名称、加密类型、密码
- **URL**: 网址链接

### 2. **通信相关**
- **Email**: 邮箱地址
- **Phone**: 电话号码
- **SMS**: 短信内容和号码

### 3. **联系人信息**
- **vCard**: 标准联系人格式
- **MeCard**: 简化联系人格式

### 4. **时间管理**
- **Calendar**: 日历事件信息

### 5. **社交媒体**
- **Instagram**: 用户主页
- **Facebook**: 页面或用户
- **Spotify**: 音乐曲目
- **X**: 用户主页
- **WhatsApp**: 聊天链接
- **Viber**: 联系人
- **Snapchat**: 用户
- **TikTok**: 用户主页

### 6. **其他类型**
- **Location**: 地理位置坐标
- **Text**: 纯文本信息

## 🧪 测试要点

### 1. **功能测试**
- ✅ 二维码图片生成
- ✅ 类型识别准确性
- ✅ 内容解析正确性
- ✅ 操作按钮功能
- ✅ 数据同步状态

### 2. **界面测试**
- ✅ 不同屏幕尺寸适配
- ✅ 长内容显示
- ✅ 加载状态
- ✅ 错误处理

### 3. **性能测试**
- ✅ 图片生成速度
- ✅ 页面加载时间
- ✅ 内存使用情况

## 🔮 未来扩展

### 1. **功能增强**
- 支持更多二维码格式
- 添加二维码编辑功能
- 支持批量操作
- 添加二维码历史版本

### 2. **用户体验**
- 自定义二维码样式
- 添加动画效果
- 支持深色模式
- 多语言支持

### 3. **数据分析**
- 二维码使用统计
- 热门类型分析
- 用户行为分析

## 📝 总结

二维码信息详情页面成功实现了以下目标：

1. **完整性**: 支持所有常见二维码格式的识别和解析
2. **易用性**: 直观的界面设计和清晰的信息展示
3. **功能性**: 丰富的操作选项和实用的功能特性
4. **集成性**: 与历史记录系统完美集成
5. **扩展性**: 为未来功能扩展奠定基础

该页面为用户提供了完整的二维码信息查看和管理体验，大大提升了应用的实用性和用户体验。🎉 