为什么无法明确知道您的网站是作为 PWA 还是作为网站运行?

问题描述 投票:0回答:1

我想知道为什么浏览器不提供确定的方法来确定应用程序是作为 PWA 还是网站运行。这一决定背后存在哪些安全风险?

我知道有一些不可靠的解决方法,如下所示:

window.matchMedia('(display-mode: standalone)').matches
– 如果您在 PWA 上启用全屏,此方法将会中断。

window.navigator.standalone || document.referrer.includes('android-app://')
– 这些适用于移动设备,不适用于 PC。

有人可以解释为什么会出现这种情况以及安全风险(如果有)是什么?或者只是 PWA 还不够成熟?

google-chrome firefox safari progressive-web-apps chromium
1个回答
0
投票

我通读了 Mozilla 对“渐进式网络应用程序”的解释,但我真的不明白有什么大惊小怪的,因为世界其他地方只是称它们为“网络应用程序”。

有人可能想区分桌面网络应用程序和互联网网络应用程序,但它们仍然是网络应用程序,我不认为在它们的描述中添加“渐进式”的意义。

但无论如何,我们这些早早跳上 Node-Webkit 巴士的人可能是第一批;如果不是世界上第一个,也要感谢 NW 作者来发布桌面 Web 应用程序。

我不记得当时有任何其他竞争包,直到一段时间后 Electron 出现。

至于如何区分它们你可以使用:

window.location.ancestorOrigins[0]
…你会发现他们总是返回一些类似于…的东西

chrome-extension://yourAppsName
…对于基于 Chromium 的应用程序,假设作者做了正确的事情并设置了他们的域名以反映应用程序名称以替换随机生成的怪物。

© www.soinside.com 2019 - 2024. All rights reserved.