import React, { useState, useRef } from 'react'; import { View, Text, Alert } from 'react-native'; import { QRCode, Button } from '@xrnjs/ui'; import Card from '_global/Card'; import type { QRCodeRef } from '../QRCode'; import styles from './style'; const AdvancedFeatures = () => { const qrRef = useRef(null); const [qrData, setQrData] = useState(''); const [saveConfig, setSaveConfig] = useState({ cancelText: '取消', actionText: '保存到相册', saveScucessText: '保存成功', permissionFailedText: '权限获取失败', }); // 生成不同类型的二维码内容 const generateURL = () => 'https://github.com/facebook/react-native'; const generateWiFi = () => 'WIFI:T:WPA;S:MyNetwork;P:MyPassword;H:false;;'; const generateContact = () => 'BEGIN:VCARD\nVERSION:3.0\nFN:张三\nTEL:13800138000\nEMAIL:zhangsan@example.com\nEND:VCARD'; const generateSMS = () => 'SMSTO:13800138000:Hello from QRCode!'; const generateEmail = () => 'mailto:example@email.com?subject=Hello&body=Message from QRCode'; const handleCustomSave = (svg: any) => { svg.toDataURL((dataUrl: string) => { setQrData(dataUrl.substring(0, 100) + '...'); Alert.alert('自定义保存', '二维码数据已获取,可以进行自定义处理', [ { text: '取消', style: 'cancel' }, { text: '查看数据', onPress: () => console.log('Full data:', dataUrl) }, ]); }); }; return ( 二维码可以包含各种类型的数据 网址链接 WiFi信息 联系人 短信 邮件 自定义保存操作的文案和行为 完全自定义保存逻辑 {qrData && ( 获取到的数据: {qrData} )} 包含大量数据的二维码,需要高纠错等级 ); }; export default AdvancedFeatures;