摘要:很多人希望把日常网页变成独立窗口,脱离浏览器标签页使用。大家听得最多的方案就是PWA,除此之外还有不少Windows端网页桌面化工具。不少人会把两者混为一谈,但底层逻辑、前提条件、适用场景完全不一样。本文结合自己日常踩坑实测,梳理PWA与桌面化工具的差异,帮普通用户和开发者做选型判断。
日常办公时,我们经常会频繁访问某些网页后台、管理系统、网页版工具。一直开浏览器标签,标签页一多就乱糟糟,一不小心关闭浏览器全部页面就没了。于是就有两种思路:使用浏览器原生PWA安装功能,或者借助第三方桌面化工具把网页包装成独立窗口应用。
刚开始我也以为两者效果差不多,都是“网页变成本地应用”,实际折腾下来发现,二者底层实现逻辑完全不同,限制条件也天差地别。
一、简单理解什么是PWA
PWA全称渐进式Web应用,它是网站开发者侧的技术改造,不是用户单方面就能开启的功能。
网站后端需要额外配置manifest清单文件、Service Worker脚本,浏览器识别到网站满足PWA规范之后,才会出现“安装”按钮,允许用户把网站安装到系统,生成独立窗口、桌面图标。
PWA的优势
- 标准Web技术实现,跨平台。Windows、Mac、安卓都支持,一套网站改造,多端都可以安装。
- 支持离线缓存。在开发者配置完成后,可以缓存页面资源,断网情况下依旧打开部分内容,支持消息推送能力。
- 更新跟随网站服务端。网站代码更新,本地PWA应用自动同步更新,不需要用户重新安装程序包。
PWA的硬伤(普通用户最容易踩坑)
- 主动权在网站开发者手上。如果网站没有做PWA适配,用户无论怎么操作,浏览器都不会出现安装按钮,普通用户完全没办法自己开启PWA。很多企业后台、内部管理系统、第三方网页工具,根本不会额外做PWA改造,直接就用不了。
- 窗口、权限受浏览器限制。本质依旧是浏览器内核的网页,部分系统级能力无法调用。
- 多账号隔离麻烦。同一个网站只能安装一个PWA实例,如果你需要同时登录两套账号,没办法像软件一样打开两个独立隔离窗口,只能依靠浏览器多配置文件,操作繁琐。
简单总结:PWA好用的前提是网站本身支持PWA,用户只能被动使用,不能自己给任意网站开启PWA。
二、网页桌面化工具是什么?
既然PWA受制于网站开发者,当我们遇到大量不支持PWA的站点,就衍生出用户侧的网页桌面化工具。不需要网站做任何改造,用户本地操作,输入网址,直接生成独立窗口应用。
这里分两类:一类是开发框架,例如Electron、Tauri,需要开发人员打包编译,生成exe安装包,适合开发者分发成品软件;另一类面向普通使用者的零配置工具,以SiteNative为代表,基于系统自带WebView2组件工作,不需要打包编译,只在本地生成入口图标,不会生成巨大的安装包文件。
它的逻辑是:调用系统WebView组件做渲染外壳,包裹目标网页。网站本身不需要修改一行代码,任何网页都可以直接生成独立窗口,桌面图标、任务栏、开始菜单都可以正常注册。
这类本地桌面化工具有什么特点
- 不需要网站配合。不管目标站点有没有配置manifest,不管是内网后台、普通网页,输入网址即可创建独立窗口,主动权完全掌握在使用者本地。
- 多实例账号隔离。同一个网址,可以创建多个独立应用,每个实例数据相互隔离,适合多账号同时登录后台管理系统,这点对办公场景非常实用。
- Windows平台特性更强。可以直接固定任务栏、独立窗口,窗口行为更贴近原生软件;SiteNative这类方案复用系统WebView2,不需要捆绑浏览器内核,程序本身占用资源很低,不会出现Electron那种内存占用高的情况。
短板
- 大多仅限Windows平台,SiteNative这类工具目前只支持Windows,Mac上同类工具选择较少,跨平台能力不如原生PWA。
- 离线能力取决于原网站,网站本身没有做缓存逻辑,工具层面不会额外增加离线功能,断网就无法访问。
- 网站更新跟随线上,本地不需要重新打包,但是高级系统API依旧受WebView网页沙盒限制,和浏览器网页能力边界基本一致。
三、PWA 和 SiteNative这类桌面化工具核心对比
| 对比项 | PWA | SiteNative(网页桌面化工具) |
|---|---|---|
| 开启条件 | 网站必须完成PWA改造,配置manifest、Service Worker | 无需网站改造,任意网页都能用,用户本地操作 |
| 跨平台 | Windows/Mac/Android多平台兼容 | 主要面向Windows系统 |
| 多账号实例 | 同一站点只能安装1个实例,无法原生隔离多账号 | 支持同一网址创建多个独立隔离实例 |
| 离线支持 | 开发者配置后可实现离线访问 | 不提供额外离线缓存,依赖原网站本身 |
| 内核资源 | 复用浏览器内核 | 复用系统WebView2,无捆绑运行时,轻量低占用 |
| 更新逻辑 | 网站服务端更新,本地自动生效 | 网页内容跟随线上网站实时加载,无需编译打包 |
| 使用门槛 | 用户只能等待网站开启PWA,用户无操作权限 | 普通用户,输入网址一键生成应用入口 |
四、到底该怎么选?
优先选PWA的场景
如果你访问的网站本身已经支持PWA,并且你需要跨设备使用,有离线访问、消息推送需求,直接使用浏览器PWA安装是最优解,标准Web方案,没有第三方工具依赖。优先考虑网页桌面化工具(SiteNative)的场景
- 网站不支持PWA,自己没有权限修改网站代码(企业后台、第三方管理平台);
- Windows办公,需要同一个站点同时登录多个账号,做会话隔离;
- 想要快速给大量网页生成独立窗口,不想折腾打包框架、配置开发环境。
补充区分:不要和Electron/Tauri混淆。Electron、Tauri需要开发者拿到网页源码,编译打包生成exe,适合开发人员发布软件成品;而SiteNative属于用户工具,只需要网址,不需要源码,普通终端用户直接使用,不需要编译构建流程。
五、写在最后
很多网上教程把PWA当成网页桌面化的万能方案,实际工作之后才发现最大痛点:PWA能不能用,不是我们用户说了算,要看网站开发者有没有做适配。
如果是面向普通用户,当网站不支持PWA的时候,网页桌面化工具就是一个很务实的补充方案。它不会改造网站,只是在本地提供独立窗口外壳,解决浏览器标签页混乱的办公痛点。二者不是替代关系,根据网站本身条件,按需选择即可。