我向 Microsoft Store 提交了一个 PWA,并在提交时收到了以下注释:
10.8.5 Your app or app metadata includes links that promote installation or purchase of software outside the Store. Your app may promote or distribute software only through the Microsoft Store.
这是因为我的网络应用程序有一个产品页面,其中包含指向该应用程序可用的各种平台的链接。这样一来,使用浏览器访问我的 Web 应用程序的用户就能够将其作为“ native ”应用程序安装在他们的平台上。
如何检测我的 Web 应用程序是否通过 Microsoft Store 作为 PWA 运行,以便我可以呈现没有产品页面的应用程序的 trim 版本?
我的第一个想法是检查 navigator.userAgent
,但这似乎模棱两可,因为无论应用程序是“本地”运行还是在浏览器中手动访问,用户代理都是 Microsoft Edge .
我更喜欢在 JavaScript 中区分这些用例的解决方案,但我也愿意接受完全不同的方法。
最佳答案
正确的官方方法是检查window.Windows
。当作为应用商店应用运行时,整个 WinRT API 表面被注入(inject)。因此,您可以(并且应该)执行以下操作而不是用户代理嗅探:
if (window.Windows) {
// running as a Windows app
}
else {
// running in browser
}
关于javascript - 通过 Microsoft Store 检测 Web 应用程序是否作为 PWA 运行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49318152/