【问题标题】:How to open PWA from Google Play in Google Chrome instead of WebView?如何在 Google Chrome 而不是 WebView 中从 Google Play 打开 PWA?
【发布时间】:2019-10-10 03:53:06
【问题描述】:

我为网站的每个子域都定制了 PWA。我们的想法是在 Google Play 上有一个 PWA,安装后,用户可以选择一个子域,将他重定向到子域,然后提示他安装与他选择的子域相关的 PWA。

问题是从 Google Play(或直接从 apk)安装的 PWA 在 WebView 中打开,这似乎不会触发子域上的 berforeinstallprompt 事件(当我在 Google Chrome 中打开子域时,该事件正确发射)。 “添加到主屏幕”选项仍然可以从 WebView 菜单中使用。

这让我有两个选择,但我无法让它们中的任何一个工作:

1) 在 Google Chrome 而不是 WebWiev 中运行从 Google Play 安装的 PWA。

2) 了解如何在 WebView 中触发 berforeinstallprompt

它们中的任何一个都可能吗?怎么样?

捕获berforeinstallprompt 事件并显示安装按钮的代码与https://developers.google.com/web/fundamentals/app-install-banners/ 上的代码非常相似,因此问题应该出在其他地方。

    var deferredPrompt;
    var button = document.getElementById("install-button");

    window.addEventListener('beforeinstallprompt', (e) => {
        e.preventDefault();
        deferredPrompt = e;
        button.style.display = 'block';
    });

【问题讨论】:

    标签: webview google-play android-webview apk progressive-web-apps


    【解决方案1】:

    beforeinstallprompt 只会在某些情况下被触发,例如,如果您的应用已经安装,或者您的网站没有在 https 中提供所有请求。另外,尝试运行 lighthouse more tools => developer tools => Audits 并运行并查看您的应用是否已优化。

    请详细描述您想要实现的目标,为什么在 PWA 中使用子域?

    【讨论】:

    • 在常规谷歌浏览器中打开页面时会触发beforeinstallprompt,因此问题应该出在其他地方。我们的 Web 应用程序为每个客户提供了一个独特的子域。我们希望他们每个人都直接从他们的子域安装 PWA,这样就不会混淆客户在哪里可以找到他的 Web 应用程序。由于用户对 PWA 的概念还不是很熟悉,我们希望 Google Play 提供一个渐进式应用程序,帮助用户选择他的子域,然后将他重定向到那里并显示 PWA 安装提示。
    • 现在的问题是,当我从独立 PWA 打开外部 URL 时,它会在 Android WebView 中打开(我希望我正确使用了这个术语,我的意思是使用的 Google Chrome 的简单版本当打开应用程序的链接时)。在 WebView 中,我可以从 WebView 菜单中选择添加到主屏幕,但没有触发 beforeinstallprompt,因此用户看不到任何通知。我希望这是有道理的,谢谢你的回答!
    • 无法从 PWA 应用安装 PWA 应用,因为 beforeinstallprompt 永远不会在已安装的 PWA 应用中触发。尝试从应用程序打开用户的浏览器。然后他们可以将其安装为 PWA
    • 好的,感谢您澄清这一点。从 Google Play 安装时,有没有办法强制 PWA 在浏览器中打开?我不认为这可以通过manifest(“display”:“browser”)以通常的方式解决,但我会尝试一下。
    • 从 Google Play 安装时,我还没有找到如何在浏览器中打开 PWA 的方法。
    猜你喜欢
    • 2022-12-18
    • 1970-01-01
    • 2019-09-06
    • 1970-01-01
    • 2020-10-03
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-04-02
    相关资源
    最近更新 更多