Flutter iOS端调用mailto协议弹出空白弹窗问题求助
Flutter iOS端调起邮件应用空白弹窗解决方案
- 替换过时的url_launcher API
url_launcher 6.0.0及以上版本已废弃canLaunch、launch方法,旧API在iOS 14+系统上存在兼容性问题,建议改用新版API,同时强制指定iOS端用外部应用打开,避免调用应用内空白视图:import 'package:url_launcher/url_launcher.dart'; _sendingMails() async { final Uri mailUri = Uri.parse('mailto:xyz@mail.com'); if (await canLaunchUrl(mailUri)) { await launchUrl( mailUri, // 强制跳转外部应用处理,禁用应用内打开模式 mode: LaunchMode.externalApplication, ); } else { throw '无法打开邮件地址:$mailUri'; } } - 校验测试环境
不要使用iOS模拟器测试该功能,iOS模拟器默认未安装任何可处理mailto协议的邮件应用,无对应程序响应请求会触发空白弹窗,请使用iOS真机测试,且真机内至少安装1个邮箱客户端(系统邮件、第三方邮箱均可)。 - 确认Info.plist配置
你当前添加的LSApplicationQueriesSchemes配置是正确的,确认该配置放置在ios/Runner/Info.plist的根dict节点下即可,无需额外修改。
内容的提问来源于stack exchange,提问作者Mysterious
相关产品推荐
相关产品推荐

