使用flutter_widget_from_html链接无法打开,已引入url_launcher包
问题分析与解决方法
你的代码存在明显问题,导致链接无法打开,核心问题出在onTapUrl的实现逻辑上:
canLaunchUrl(Uri.parse(url))仅完成URL可启动性检查,没有执行实际的打开操作onTapUrl要求返回Future<bool>,用来通知组件是否处理了点击事件,你当前的写法只做了检查,未触发打开动作
修正后的代码
HtmlWidget( '<p>This is a <a href="https://bbc.co.uk">link</a></p>', onTapUrl: (url) async { final uri = Uri.parse(url); if (await canLaunchUrl(uri)) { await launchUrl(uri); return true; // 告知组件已处理该点击 } return false; // 无法处理时,交由组件执行默认逻辑 }, renderMode: RenderMode.column, textStyle: const TextStyle(fontSize: 20), )
额外注意事项
- 确保已在原生配置文件中添加对应权限:
- Android:在
AndroidManifest.xml中添加<uses-permission android:name="android.permission.INTERNET"/> - iOS:如果是http链接,需在
Info.plist中配置App Transport Security例外;https链接默认无需额外配置
- Android:在
内容的提问来源于stack exchange,提问作者StripyTiger
相关产品推荐
相关产品推荐

