You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

使用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链接默认无需额外配置

内容的提问来源于stack exchange,提问作者StripyTiger

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.30 12:46:01