![](/img/trans.png)
[英]How to save API data locally in Flutter so that app can work without internet connection?
[英]How can I run flutter web app without internet connection
我创建了一个flutter web应用程序,我用命令完成构建它.. flutter build web --release
,然后将它转移到本地服务器,除非它连接到 Inte.net,否则该站点无法运行,
我希望该站点在没有 inte.net 连接的情况下工作,因为我在一个组织中工作并且一些用户没有 inte.net 权限。
拜托,我想要解决这个问题的方法。
谢谢
flutter 构建 web --web-renderer=canvaskit --dart-define=FLUTTER_WEB_CANVASKIT_URL=/canvaskit/
问题是,flutter 有一些依赖关系,当您作为客户端离线时无法解决。 主要由canvaskit
和某些 google fonts 组成。
有多种解决方案。 最简单的是使用 html 网络渲染器:
flutter build web --release --web-renderer html
这应该适用于大多数应用程序,但是它的性能低于canvaskit
,尤其是在小部件密度高的情况下。
因此,您也可以在本地使用canvaskit
,因为它是在您构建版本时自动构建的。 但是您必须通过在 index.html 中添加以下行来将其设置为基础 url:
<script>
window.flutterConfiguration = {
canvasKitBaseUrl: "/canvaskit/"
};
</script>
这可确保您的 flutter 应用程序使用canvaskit
的本地源。 但是,另一个问题可能是使用 google fonts,例如 Roboto,因为这些通常也需要下载。 但是您可以将它们显式添加到pubspec.yaml
以解决此问题,就像在此处解释的那样。
更多信息的一些来源:
为了使其适用于开发版本,我在以下步骤中合并了上面 Spaching 的回答。
flutter clean
以清理所有构建缓存(这对于在下面的第 4 步中重新下载 canvas 工具包很重要)。flutter pub get
按照 pubspec.yaml 下载软件包dart run build_runner build --delete-conflicting-outputs
在这个阶段你应该有一个干净的/build
文件夹(我也有一个 ios 子文件夹,因为我也在为 iOS 开发)
flutter build web
在这个阶段,你应该有一个干净的/build/web
添加在它下面的canvaskit
文件夹。 完整路径: /build/web/canvaskit/
然后:
/web
下的index.html
(注意 -不要打开/build/web
下的那个)
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.