【问题标题】:Checking standalone mode in Trusted Web Activity APP在 Trusted Web Activity APP 中检查独立模式
【发布时间】:2019-06-26 02:54:37
【问题描述】:

我有一个 PWA 应用程序,我在其中检查应用程序是否处于独立模式(下面的代码 sn-p),否则使用安装横幅提示用户。

let windowNav: any = window.navigator;    
if (window.matchMedia('(display-mode:standalone)').matches || windowNav.standalone) {
             this.isStandAlone = true;
        }

最近,我还为此创建了一个 TWA 应用程序。现在,当我从 Playstore 安装 APP 时,尽管应用程序处于独立模式,但以下检查失败。是否有其他方法可以检查 TWA 应用程序中的独立模式?或者检查 APP 是否为 TWA 应用程序的方法?

谢谢

【问题讨论】:

标签: progressive-web-apps trusted-web-activity


【解决方案1】:

单机版在 TWA 的情况下不是很有用。 如果您想知道您的应用程序是否在 TWA 上运行, 您可以做的是将 sessionStorage 设置为标志, 如果满足某些条件。当 TWA 应用程序打开时,您可以在 document.reffer 属性中获取包名称,如 com.example,您还可以在查询参数中传递一些值来检查您的应用程序。已打开。 所以,这看起来像这样。

If(document.referrer == 'android-app://com.example' && location.href.includes('?twa=true')){ sessionStorage.isTwa = 1; }

当应用打开时,会话开始,isTwa 将设置为 1,当应用关闭时,会话也结束。与 chrome 选项卡会话相同。

【讨论】:

  • 仅供参考,document.referrer == 'android-app://com.example' 不适用于某些浏览器。例如。如果默认浏览器设置为 Brave,则 TWA 将使用默认浏览器启动,并且 document.referrer 将为空白。查询参数可能是更好的选择。
  • @Han 你能解释一下你的选择吗?谢谢
  • @NelsonLaRocca,我不确定新的 Brave 浏览器(截至去年的测试),它适用于 Chrome。但是在 Brave 浏览器(尽管它是 webkit)上运行时,为 document.referrer 执行的 javascript 返回空白/未定义。所以我修改的是只检查 location.href.includes('?utm_source=launcher')。 utm_source=launcher 在 manifest.json 中设置。
猜你喜欢
  • 1970-01-01
  • 2023-02-16
  • 2021-05-10
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多