首页 > 解决方案 > 如何在 Google Chrome 而不是 WebView 中从 Google Play 打开 PWA?

问题描述

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

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

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

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

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

它们中的任何一个都可能吗?如何?

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

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

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

标签: webviewgoogle-playandroid-webviewapkprogressive-web-apps

解决方案


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

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


推荐阅读