不,PWA 不能监听常规文件系统更改,除了沙盒到应用程序本身的文件(这就像每个安装的 PWA 的虚拟文件系统)
您可以在此处参考存储更改的唯一事件侦听器,这仅适用于您从 PWA 存储到您的 PWA 特定存储空间的内容,您的外部应用程序无法访问这些内容。
<input type="file">
是您可以访问常规存储文件系统的唯一方法,它不会有任何监听器。
您所期待的是许多开发人员希望很快得到的东西,但不是一般的 PWA 规范形式。正如您所提到的,它主要被安全约束所阻止。想想我们在 Web 浏览器中访问的所有 PWA 网站(对于最终用户来说看起来就像一个普通的 Web)都可以访问您的完整文件系统。谁会接受并喜欢这个事实?没有人。一旦将 PWA 添加到主屏幕,它应该会演变为具有单独的权限,之后我们可以期待看到这些功能。
更新:您必须同时使用文件系统和 PWA 的唯一替代解决方案是将 PWA 包装在 Cordova 中,并使用本机文件系统 API 以及服务工作者等 PWA 功能来获得离线功能。如果您的目标用户 webview 足够新(v40+),它将支持服务人员。使用此选项,无法通过“添加到主屏幕”选项分发应用程序,如果这样做,它将不支持文件系统访问。
使用 Electron 包装您的 Web 应用程序可以是另一种替代方法,它也可以访问您的文件系统。Atom、VS Code 等 IDE 是使用 Electron 和 HTML/CSS/JS 构建的。