Flutter WebView加载assets中html的问题

1,047 阅读1分钟

最近项目中,用到了flutter中的webview加载带有echarts控件的html文件,但是发现图表一直无法显示,通过查询相关资料,分析apk包文件,知道了是由于flutter项目中的文件打包后的路径发生变化,造成找不到相关依赖,特此记录一下,使用下面这个方法便可以解析出Android和IOS打包后的apk中资源文件的实际位置。

///获取打包后的资源文件实际路径
///如assets/files/index.html
String getAssetsPath(String path) {
  if (defaultTargetPlatform == TargetPlatform.android) {
    return 'file:///android_asset/flutter_assets/' + path;
  } else {
    return 'file://Frameworks/App.framework/flutter_assets/' + path;
  }
}

例如,你的资源文件是在flutter项目的根目录下的 'assets/files/echart-pie.html', 那 'getAssetsPath('assets/files/echart-pie.html')'才是打包成apk后,资源文件的实际路径。

image.png

image.png

福利:

本人所在公司正在招聘Android/Flutter方向的工程师; 要求统招本科,2年以上开发经验; 薪资10-15,有意者可以私聊哦。