【问题标题】:How to keep a PWA / webapp running on android when picking files选择文件时如何保持 PWA / webapp 在 android 上运行
【发布时间】:2019-04-28 12:17:05
【问题描述】:

我有一个在移动设备上运行良好的 PWA,有时用户从相机拍照或从手机中选择一个文件,此时当文件选择完成时,应用程序从头开始重新加载,说“无法结束操作...内存不足。”

我了解我的应用程序已启动,因为需要内存。 所以我的问题是: - 也许无论如何都有可能让它保持活力 - 如果不是,那么如果应用程序从零开始,我如何检索文件选择器通常发送到输入的数据 - 也许对服务人员使用技巧?

感谢您的帮助!

【问题讨论】:

    标签: android web-applications progressive-web-apps


    【解决方案1】:

    您可以考虑使用 HTML5 文件 API 来读取要上传文件的数据。还要避免将整个文件读入内存。您可以做的是异步上传文件的一小部分,然后在服务器端将它们重新拼接在一起。尝试使用 Plupload 或支持 HTML5 文件分块的类似 JS 插件。

    最后,您可能希望避免在上传照片之前显示照片预览,因为这也会占用内存。

    【讨论】:

    • 实际上,我可能还没有说清楚,当我的应用程序保持打开状态时,我会使用 File API (FileReader) 按我的意愿处理我的文件。但问题是,在我花时间选择文件(使用任何 android 文件资源管理器或相机)时,我的网络应用程序关闭了。当我的选择完成后,它会重新启动应用程序,但是所有状态都丢失了,我不知道是否可以检索由 android 选择的那些应该填充我的输入标签的文件。
    • 听起来您可能需要将状态放入 IDB 或 localStorage。为此推荐一个名为 localForage 的库(它选择浏览器可以处理的最高级的本地存储形式,并使用 localStorage API 的语法)。它是基于承诺的,因此您需要异步思考。这可能允许您恢复一些可能导致应用程序重新启动的宝贵内存。无论如何,在 PWA 中,最好将状态存储在本地存储中,仅用于这种类型的场景,以及当用户必须最小化应用程序或临时切换到另一个应用程序时。
    • 我想到的另一件事。如果您的应用程序是单页应用程序,那么这种架构可能会占用大量内存。 SPA 及其相关框架占用了大量内存空间。如果您对项目不太深入,可以考虑使用支持 ajax 的多页应用程序。这是一位 Google 工程师在其 PWA 中使用多页应用方法的视频:developers.google.com/web/updates/2018/05/beyond-spa
    猜你喜欢
    • 2020-03-06
    • 1970-01-01
    • 1970-01-01
    • 2020-01-07
    • 2013-10-10
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多