【问题标题】:How to detect if ionic PWA is installed on desktop (not the browser)?如何检测 ionic PWA 是否安装在桌面(而不是浏览器)上?
【发布时间】:2020-11-30 15:29:23
【问题描述】:

提前感谢您的帮助。我到处寻找,但找不到合适的方法来检查。

场景:

我已经安装了 ionic PWA 并尝试检查平台以确定应用程序是否已安装。移动端没问题,因为我可以检查:

if ((!this.platform.is('pwa') && this.platform.is('mobile'))) {...}

但对于台式机,我无法知道该应用程序是否安装在设备上...(因为当设备不是移动设备时,“PWA”似乎不起作用)


Meaby 我在这个文档中遗漏了一些东西: https://ionicframework.com/docs/angular/platform 非常感谢:)

【问题讨论】:

  • 你也可以检测 this.platform.is('desktop') && !this.platform.is('mobile') {...}
  • 对,但是您如何知道该应用程序是否已实际安装?我正在尝试这样做,因为我只想在桌面视图上分享“更好的用户体验”...
  • 您是否使用电子让用户将应用程序安装为桌面应用程序?如果是这样,那么你还要检查 this.platform.is('electron') 否则我需要知道你用来预览你的应用程序作为桌面应用程序以查看条件的包装器
  • 不,我没有使用电子。是安装的 PWA。很遗憾我无法检查 his.platform.is('electron')...
  • 好的,如果您可以检查您计算机上安装的 pwa,请查看 html 标签,它应该包含一些与平台相关的类,例如 pwa 或桌面或网络或移动类似的东西,并且在web 肯定会有 2 之间的类的一些变化,所以通过这种方式你可以了解你应该设置的条件来检测每个运行它的位置。

标签: ionic-framework progressive-web-apps desktop platform


【解决方案1】:

感谢穆斯塔法哈布!你给我指明了正确的方向! 对于那些想要检查用户是否通过桌面访问并且未安装应用程序(至少使用 Ionic 5 版本...)的人,您可以这样做:

const isPWAInstalledOnDesktop: boolean = document.getElementsByClassName('plt-pwa').length > 0;
If(!isPWAInstalledOnDesktop && this.platform.is('desktop')){...}

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2011-12-25
    • 1970-01-01
    • 2019-02-11
    • 2015-01-27
    • 2015-12-10
    • 1970-01-01
    • 2016-10-17
    相关资源
    最近更新 更多