如何检测 PWA 是否已安装在 IOS 上

时间:2021-02-02 12:29:43

标签: javascript ios angular safari progressive-web-apps

我有 PWA angular 应用程序,我想向用户显示他/她可以在主屏幕上添加应用程序的弹出窗口。

我不希望此通知在 PWA 中显示,而只在 IOS Safari 中显示,因此我使用此检查:

const isInStandaloneMode = () => ('standalone' in window.navigator) && (window.navigator.standalone);

当用户已经安装 PWA 时,我也不想在 IOS Safari 上显示此弹出窗口,是否有机会检查是否已安装 PWA?

1 个答案:

答案 0 :(得分:2)

是的,如果用户从 iOS 的主屏幕启动您的 PWA,该代码将返回 true

您还可以将代码稍微简化为:

const iOSCanInstall = 'standalone' in window.navigator;
const iOSIsInstalled = window.navigator.standalone === true;

这样,您就知道他们是否是可能安装您的 PWA 的 iOS 用户,以及他们是否已从主屏幕打开您的 PWA。

如果用户在浏览器中打开你的 PWA,很遗憾没有办法检查它是否已经安装。在 Chrome/Edge 中,您可以使用 getInstalledRelatedApps(),但遗憾的是这对您的问题没有帮助。