Flutter中如何使用webview和flutter_echarts in HarmonyOS 鸿蒙Next

Flutter中如何使用webview和flutter_echarts in HarmonyOS 鸿蒙Next Because flutter_echarts 2.5.0 depends on webview_flutter from hosted and nft_once depends on webview_flutter from git, flutter_echarts 2.5.0 is forbidden.

So, because nft_once depends on flutter_echarts 2.5.0, version solving failed.

提示这个,因为webview是这git下载的

cke_2795.png

所以导致不兼容,目前官方支持flutter_echarts吗

flutter版本3.22


更多关于Flutter中如何使用webview和flutter_echarts in HarmonyOS 鸿蒙Next的实战教程也可以访问 https://www.itying.com/category-92-b0.html

3 回复

【解决方案】

版本冲突问题:

  • 多个三方库公共依赖的其他库版本引入方式不一致:
  • 原因:flutter_echarts依赖的webview_flutter是中心仓的库,但是nft_once依赖的webview_flutter是Git引入的依赖,导致的版本不一致。
  • 解决方案:覆盖依赖的方式引入webview_flutter即可。
dependency_overrides:
  webview_flutter:
     git:
       url: "https://gitcode.com/openharmony-tpc/flutter_packages.git"
       path: "packages/webview_flutter/webview_flutter"

更多关于Flutter中如何使用webview和flutter_echarts in HarmonyOS 鸿蒙Next的实战系列教程也可以访问 https://www.itying.com/category-92-b0.html


在鸿蒙Next中使用Flutter的webview和flutter_echarts,需通过ArkUI的Web组件与Flutter侧桥接。flutter_echarts本身基于WebView实现,在鸿蒙上需将Web组件封装为Flutter插件供Dart层调用,或直接使用鸿蒙Web组件加载ECharts的HTML/JS资源。目前Flutter for HarmonyOS尚在演进中,官方未提供正式适配方案,需关注OpenHarmony社区或Flutter鸿蒙适配进展获取具体实现。

这是一个典型的Flutter依赖冲突问题,与HarmonyOS Next本身没有直接关系。问题核心在于你的两个依赖包(flutter_echartsnft_once)对同一个包 webview_flutter 指定了不同的来源。

问题分析:

  1. flutter_echarts: 2.5.0 依赖来自 pub.dev 官方仓库的 webview_flutter
  2. nft_once 依赖来自 Git 仓库的 webview_flutter
  3. Flutter的包管理器不允许同一个包存在两个不同的来源,因此导致版本解析失败。

解决方案:

方案一:统一 webview_flutter 来源(推荐) 这是最直接的解决方法。你需要检查 nft_oncepubspec.yaml 文件,看它为何指定了Git来源。通常是因为需要某个特定提交或分支的修复。你可以尝试:

  1. nft_oncepubspec.yaml 中,将 webview_flutter 的依赖来源从 git: 改为标准的版本号(如 ^4.0.0),前提是该版本能满足 nft_once 的功能需求。
  2. 如果 nft_once 是你自己的包或可以修改,直接修改其依赖声明。
  3. 如果 nft_once 是第三方包,你可以考虑 fork 其仓库,修改依赖后使用你的 Git 分支。

方案二:使用依赖覆盖 在你的主项目的 pubspec.yaml 文件中,使用 dependency_overrides 强制所有依赖使用同一个来源的 webview_flutter

dependency_overrides:
  webview_flutter:
    # 选择一个来源,通常选择 pub.dev 的稳定版
    # 如果 nft_once 必须使用 git 版本,且 flutter_echarts 也能兼容,则覆盖为 git 版本
    version: ^4.0.0 # 或具体的 git 地址

注意:覆盖依赖可能导致某些包因版本不兼容而运行异常,需要充分测试。

方案三:寻找替代包或更新版本

  1. 检查是否有更新版本的 flutter_echartsnft_once 已经解决了这个依赖冲突。
  2. 如果 nft_once 不是核心功能,考虑寻找其他不依赖特定 webview_flutter 来源的包替代。

关于HarmonyOS Next的官方支持: 目前,flutter_echartswebview_flutter 都是Flutter生态的第三方插件。它们在HarmonyOS Next上的兼容性取决于:

  1. Flutter for HarmonyOS Next 框架本身对 Flutter 插件机制的实现是否完整。
  2. 插件是否调用了需要鸿蒙特定适配的底层 API(如 webview_flutter 涉及原生Web视图)。

在纯Flutter兼容层下,如果插件使用的是纯Dart代码或通过标准Flutter插件通道与系统交互,通常可以运行。但涉及原生视图(如WebView)的插件,其性能、功能和在HarmonyOS Next上的稳定性,需要在实际的HarmonyOS Next开发环境或设备上进行验证。

总结步骤:

  1. 首要任务是解决Flutter层的依赖冲突,使用上述方案一或二。
  2. 在Flutter层问题解决后,再在HarmonyOS Next工程中集成、编译并运行,观察 flutter_echartswebview_flutter 的功能是否正常。
  3. 目前没有官方公告明确指出对 flutter_echarts 的专门支持,其可用性属于“社区插件在鸿蒙上的兼容性”范畴,需开发者自行验证。
回到顶部