如何在 JS/React-Native 中下载完整的 html 页面?

Posted

技术标签:

【中文标题】如何在 JS/React-Native 中下载完整的 html 页面?【英文标题】:How to download the complete html page in JS/React-Native? 【发布时间】:2020-10-31 23:08:50 【问题描述】:

所以我试图在 React-Native 应用程序中下载一个完整的 html 页面,以便用户稍后也可以在离线时查看该页面。我正在使用 WebView 呈现页面,它在联机时可以正常工作。

为了让它离线,我正在执行 axios.get 来获取页面并存储它。但是当我渲染这个页面时,我注意到它缺少所有的 css/图像,因为它们不是 GET 请求的一部分。如何下载完整的 HTML 页面并将其呈现为在线状态?

我想不出任何方法来下载页面的所有资产。

【问题讨论】:

【参考方案1】:

您需要下载所有引用的资产并可能更改引用,以便它们在本地工作。有一些工具可以做到这一点。

最简单的方法可能是使用您的网络浏览器保存网站。这可能会或可能不会按您期望的方式工作,但值得一试。

如果还不够,请尝试使用 HTTrack 或 wget 等工具。指令here.

【讨论】:

这可以在桌面上运行,但如果我想将网页存储在我的 React-Native 应用程序中怎么办? 你不能在桌面上下载它,然后将文件存储在你的应用程序中吗?还是要动态下载文件? 我要动态下载【参考方案2】:

它与我当前的问题类似,当用户尝试打开 webview 时,我面临很长时间的下载设置时间,无论如何它会降低 UX,那么我们应该做一些事情以获得更好的性能,我找到了这个包

https://www.npmjs.com/package/react-native-static-server

但是我担心这个包的长期维护,如果有一天这个包在反应本地更新他们的库时没有更新他们的包,那将是最糟糕的情况。

【讨论】:

以上是关于如何在 JS/React-Native 中下载完整的 html 页面?的主要内容,如果未能解决你的问题,请参考以下文章

我们如何将完整的网页数据下载到电子表格

如何下载 .html 格式的完整 html 代码? [复制]

如何将完整的 Athena 查询结果下载到 CSV 文件

imaplib/gmail 如何在不标记为已读的情况下下载完整消息(所有部分)[重复]

如何使用 Python 脚本下载完整的网页?

无需下载完整文件即可获取元数据信息