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

如何在Flutter中实现WordPress JSON API返回链接的可点击功能?

解决方案:利用flutter_html的链接回调实现应用内跳转

你当前使用的Html组件(来自flutter_html包)本身就支持处理链接点击,不需要换成RichText(后者需要手动将HTML字符串转换为InlineSpan,这也是你报错的原因)。直接通过以下步骤实现可点击的应用内跳转:

1. 给Html组件添加onLinkTap回调

修改你的Html渲染代码,新增onLinkTap参数来拦截链接点击事件,处理应用内路由跳转:

Html(
  data: _content,
  // 添加链接点击回调
  onLinkTap: (String? url, RenderContext renderContext, Map<String, String> attributes, _) {
    if (url == null) return;

    // 处理链接:根据WordPress返回的href格式选择对应逻辑
    if (url.startsWith('http')) {
      // 如果是完整URL(如http://192.168.6.165/test),提取帖子slug
      final uri = Uri.parse(url);
      final postSlug = uri.pathSegments.last;
      // 跳转到应用内帖子详情页,假设你的详情页是PostDetailPage
      Navigator.push(
        context,
        MaterialPageRoute(
          builder: (context) => PostDetailPage(slug: postSlug),
        ),
      );
    } else {
      // 如果是直接的帖子slug(如示例中的"test"),直接用slug跳转
      Navigator.push(
        context,
        MaterialPageRoute(
          builder: (context) => PostDetailPage(slug: url),
        ),
      );
    }
  },
)

2. 补充说明

  • 你之前用RichText报错是因为RichText的text参数要求传入InlineSpan类型,而不是原始的HTML字符串,转换过程需要额外的解析逻辑,远不如直接使用flutter_html的回调便捷。
  • 确保你的应用已经定义了对应的帖子详情页路由(比如PostDetailPage),并能通过slug获取对应帖子内容。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.22 17:57:14