fix(mining-app): 修复转账二维码扫描无效问题
- 修改二维码生成格式为 durian://transfer/?phone=xxx (添加路径分隔符) - 更新解析函数使用正则匹配,兼容新旧格式 Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
This commit is contained in:
parent
7a8a3a8fd1
commit
6bcfa18b01
|
|
@ -156,7 +156,7 @@ class ReceiveSharesPage extends ConsumerWidget {
|
|||
),
|
||||
),
|
||||
child: QrImageView(
|
||||
data: 'durian://transfer?phone=$phone',
|
||||
data: 'durian://transfer/?phone=$phone',
|
||||
version: QrVersions.auto,
|
||||
size: 200,
|
||||
backgroundColor: Colors.white,
|
||||
|
|
|
|||
|
|
@ -246,11 +246,23 @@ class _QrScannerSheetState extends State<QrScannerSheet> {
|
|||
}
|
||||
|
||||
/// 解析转账二维码
|
||||
/// 格式: durian://transfer?phone={phone}
|
||||
/// 格式: durian://transfer/?phone={phone} 或 durian://transfer?phone={phone}
|
||||
/// 返回手机号,解析失败返回 null
|
||||
String? parseTransferQrCode(String qrCode) {
|
||||
try {
|
||||
final uri = Uri.parse(qrCode);
|
||||
final trimmed = qrCode.trim();
|
||||
|
||||
// 使用正则表达式匹配,兼容有无 / 的格式
|
||||
// durian://transfer/?phone=xxx 或 durian://transfer?phone=xxx
|
||||
final regex = RegExp(r'^durian://transfer/?[?]phone=(\d{11})$');
|
||||
final match = regex.firstMatch(trimmed);
|
||||
|
||||
if (match != null) {
|
||||
return match.group(1);
|
||||
}
|
||||
|
||||
// 备用方案:使用 Uri.parse
|
||||
final uri = Uri.parse(trimmed);
|
||||
|
||||
// 检查 scheme
|
||||
if (uri.scheme != 'durian') return null;
|
||||
|
|
|
|||
Loading…
Reference in New Issue