首页 > 解决方案 > 在我们公司网络中运行 Flutter Web 应用程序出现问题

问题描述

我正在尝试在工作中在局域网(内联网)上运行我的 Flutter Web 应用程序。但是没有互联网接入。我有这个问题“无法加载资源:net :: ERR_INTERNET_DISCONNECTED”。我认为,问题在于 canvaskit.js,因为我的应用程序尝试从互联网下载。你知道如何解决它吗?

标签: javascriptflutterdartflutter-web

解决方案


当您在无法访问 Internet 的 Intranet 中使用 Flutter Web 时,这是一个常见的错误。我将尝试详细解释它。

在 Flutter Web 中,您可以在两个 Web 渲染器之间进行选择(更多信息请点击此处)。默认的是 CanvasKit,但也有 HTML 渲染器。

CanvasKit Web 渲染器的问题在于,当您第一次启动应用程序时,它会转到 unpkg.com 并下载两个文件:canvaskit.jscanvskit.wasm。下载后,浏览器会缓存它们,Flutter 以后不需要再次下载它们。

但是,如果应用程序无法下载这些文件,应用程序将无法启动。这是@TomášTorok 提到的问题。

有哪些解决方案?有两种可能:

1 - 强制您的应用使用 HTML Web 渲染器,因为它不需要通过 Internet 下载任何内容。这个网络渲染器有一些 CanvasKit 没有的限制,反之亦然(在本文中,他们详细解释了一切)

要在调试中使用 HTML:

flutter run -d chrome --web-renderer html

或者,如果您想构建您的应用程序:

flutter build web --web-renderer html

2 - 从 unpkg.com 手动下载canvaskit.jscanvaskit.wasm文件(示例链接),将它们添加到您的项目中(在 /web 文件夹中),并强制 Flutter web 抓取本地文件而不是从 Internet 下载任何内容.

这需要更多的工作,但也并不复杂。您有此链接中的说明。


推荐阅读