首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何在颤动手机中保存离线网站

如何在颤动手机中保存离线网站
EN

Stack Overflow用户
提问于 2021-10-26 10:51:54
回答 4查看 741关注 0票数 9

重要提示-我只想为移动应用程序提供此功能,而不是flutter web。

我在flutter应用程序中保存网站时遇到了一些麻烦。我已经尝试使用inappwebview的cache方法和savewebarchive方法。这种方法的问题是它没有保存网站的全部内容。它只保存HTML和CSS文件。

我想保存整个网站的所有内容,如HTML,CSS,js,字体文件,图片,并将其存储在颤动应用程序中。我试过一些插件,但没有一个是有帮助的。

我正在寻找与httrack相同的功能。

任何正确的方向都是正确的。

EN

回答 4

Stack Overflow用户

发布于 2021-10-28 22:19:08

下面是您想要的offline Pop, Pop, Win! game.示例

支持离线模式的

要求大致如下:

  1. 确定要将哪些资源放入缓存中以供脱机使用。
  2. 创建一个服务工作进程,该工作进程为服务工作进程准备这些资源的缓存,以便可以从脱机缓存中处理后续请求(在网络中断的情况下)。该服务工作进程中的
  3. 使用URL预先填充脱机缓存,并处理来自缓存或network.
  4. Making的相应获取请求确保服务工作进程检测到应用程序或静态资产的更改,并将新版本放入缓存中。

要执行上述步骤,您将需要此包Progressive Web App (PWA) for Dart

应用程序中的更改在pubspec.yaml中导入pwa

代码语言:javascript
复制
dependencies:
  pwa: ^0.1.2

运行pub get后,将客户端添加到您的web/main.dart

代码语言:javascript
复制
import ‘package:pwa/client.dart’ as pwa;
main() {
  // register PWA ServiceWorker for offline caching.
  new pwa.Client();
}

自动生成的渐进式web应用程序 pwa包提供了处理上述列表中的1-2和4-5项的代码生成。要确保正确使用缓存(填充缓存和使缓存无效),请使用以下工作流:

使用build/web中的所有静态资源构建web应用程序的

pub build

  1. 运行pwa的代码生成器来扫描(或重新扫描)您的脱机资产:

pub run pwa

  1. 再次构建项目,因为您需要编译(新的) pwa.dart文件:

pub build

这些步骤会生成一个名为lib/pwa/offline_urls.g.dart的文件,其中包含要缓存的脱机URL的列表。.g.dart扩展指示文件是生成的,并且可以由pwa的代码生成器工具自动覆盖。

在第一次运行时,此工作流会生成web/pwa.dart文件,该文件包含具有合理默认值的服务工作进程。您可以修改此文件(例如,自定义脱机URL或使用高级API),因为代码生成器不会再次更改或覆盖它。

所有这些步骤都来自this article,你可以在那里找到更好的细节。

票数 3
EN

Stack Overflow用户

发布于 2021-11-08 09:33:34

没有现有的Flutter插件,最快的方法之一是简单地使用Android和iOS插件,并在它周围编写一个简单的Flutter包装器。

对于android,你可能会对this link感兴趣。对于iOS,this link可能会有所帮助。这些链接只是个例子--你可以在Google上进一步搜索,找到更多适合你需求的插件。(例如,搜索android kotlin save whole website等)。

在android和ios上找到解决方案后,您可以非常轻松地使用develop a Flutter plugin,以便让Flutter代码调用这些Android/iOS代码片段。就我个人而言,我建议使用用于安卓的Kotlin,用于iOS的Swift,并且不要忘记用于代码生成的pigeon

顺便说一句,如果你想用Android/iOS代码而不是Flutter代码来绘制一些UI,你可能也会对platform views感兴趣。

票数 2
EN

Stack Overflow用户

发布于 2021-11-04 13:45:27

既然你问了一些方向:

如果您已经知道希望能够脱机查看哪些网站,则可以使用HTTrack下载这些网站并捆绑在Flutter应用程序中生成的文件。

如果你想要能够动态下载网站,目前还没有Dart/Flutter包可以帮你抓取网站。您要么自己实现它,要么创建一个使用已经编写的程序(例如HTTrack)的应用程序接口,然后将文件发送到您的应用程序。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/69721753

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档