javascript - 如何检测IOS是否已经安装PWA

标签 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?

最佳答案

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

您还可以将代码简化为:

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

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

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

关于javascript - 如何检测IOS是否已经安装PWA,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/66009755/

相关文章:

angular - Google Cloud Build - firebase 部署错误 : "public directory ' dist/browser' does not exist, 无法将托管部署到站点 PROJECT-ID”

angular - 如何在没有 cli 的情况下构建 angular 2 应用程序

ios - 将 C 指针复制到 NSMutableDictionary

IOS 10/plist/LSApplicationQueriesSchemes

angular - 为什么数据初始化不应该在 Angular 组件的构造函数中完成?

javascript - 以编程方式更改选中的复选框

javascript - 如何在 JavaScript 中生成有序的字符列表?

javascript - 使用 JQuery 或 JavaScript 加载页面时更改 css 属性

javascript - 当我单击 Javascript 中的按钮时,如何使用存储在选择选项值中的 uri?

ios - WebRTC iOS 库的 DTLS 支持