使用 PWA 创建跨平台应用,关联本地文件
「渐进式 Web 应用 (PWA) 是使用 Web 技术生成的应用程序,可以从一个代码库安装并可在所有设备上运行。」1
PWA 技术好些年前就已经推出了,但在国内似乎一直未受到重视。 我最早注意到这项技术,是在 Chrome 浏览器的地址栏上发现突然多了个 Install 按钮,就安装体验了一下,比如 Github 和 Twitter 。 体验感受并不好,和 web 网页基本没差别,就是在系统桌面和任务栏多了个应用图标,还要额外打开一个窗口。 包括现在,我也认为 大部分网站在桌面操作系统上 PWA 化是没啥意义的 。
最近我写了个 epub 阅读器 , 我需要一个跨平台方案,可以直接读取本地文件:双击 .epub 文件,直接用 app 打开,就是关联为默认程序,而不是在 app 中打开文件。 我原本考虑是用 Electron ,代码都写好了,但对于一个工具类的小应用,用 Electron 构建总感觉有些偏重。 安装包近 100M ,需要编译不同平台的安装包,每次更新都要再次编译。 一次偶然的搜索发现,可以用 PWA 支持 关联本地 .epub 文件 ,这让我对 PWA 技术重新产生了兴趣。
实现代码非常简单,添加一个 manifest.json
文件,然后在项目中加入代码:
具体实现细节就不多说了,可以查阅文档 2 。
技术实现不难,只是有时候我们不知道还有更简单高效的解决方案。
当我用 PWA 创建了本地跨平台应用,这感觉太爽了, 省去了一堆 Electron 依赖 ,不用在系统层面的 api 上耗费精力,专注于应用层的开发,效率提升了许多。 从用户角度考虑, PWA 应用, 安装快捷,不占用空间,卸载方便,打开迅速,app 更新也不需要安装包 ,体验非常轻松。
另外:
- PWA 应用支持 离线使用 ;
- PWA 应用可以上传到 Windows Store 或 Chrome App Store 。(可惜我暂时没账号,就先不上传了)
示例
EvoReader (https://evoreader.github.io/) 是一个轻量的跨平台 epub 阅读器, 可以用它浏览本地的 .epub
文件。不了解 PWA 安装的,可以查阅 安装指南 。
如果你对这个项目感兴趣,欢迎点一下 https://github.com/EvoReader/EvoReader 上的小星星,有任何建议或 Bug ,欢迎向我反馈!
文章作者 贤民
上次更新 2024-01-27
许可协议 原创文章,如需转载请注明文章作者和出处。谢谢!