我有 PWA angular 应用程序,我想向用户显示他/她可以在主屏幕上添加应用程序的弹出窗口。
我不希望此通知在 PWA 中显示,而只在 IOS Safari 中显示,因此我使用此检查:
const isInStandaloneMode = () => ('standalone' in window.navigator) && (window.navigator.standalone);
当用户已经安装 PWA 时,我也不想在 IOS Safari 上显示此弹出窗口,是否有机会检查是否已安装 PWA?
答案 0 :(得分:2)
是的,如果用户从 iOS 的主屏幕启动您的 PWA,该代码将返回 true
。
您还可以将代码稍微简化为:
const iOSCanInstall = 'standalone' in window.navigator;
const iOSIsInstalled = window.navigator.standalone === true;
这样,您就知道他们是否是可能安装您的 PWA 的 iOS 用户,以及他们是否已从主屏幕打开您的 PWA。
如果用户在浏览器中打开你的 PWA,很遗憾没有办法检查它是否已经安装。在 Chrome/Edge 中,您可以使用 getInstalledRelatedApps()
,但遗憾的是这对您的问题没有帮助。