// channel_launch.dart — 联系/购买渠道点击:按 handle(sub)推导 URL 并外部打开。 // @xxx → https://t.me/xxx (Telegram) // a@b.com → mailto:a@b.com // x.yanmei... → https://x.yanmei... import 'package:url_launcher/url_launcher.dart'; String channelUrl(String sub) { if (sub.startsWith('@')) return 'https://t.me/${sub.substring(1)}'; if (sub.contains('@')) return 'mailto:$sub'; return 'https://$sub'; } /// 点击渠道卡:外部打开对应 URL。失败静默(不炸 UI)。 Future launchChannel(String sub) async { final uri = Uri.parse(channelUrl(sub)); try { if (await canLaunchUrl(uri)) { await launchUrl(uri, mode: LaunchMode.externalApplication); } } catch (_) {} }