webview - 如何在 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';
});
解决方案
beforeinstallprompt
只会在某些情况下被触发,例如如果您的应用程序已经安装,或者您的网站没有在 https 中提供所有请求。另外,尝试运行 lighthousemore tools => developer tools => Audits
并运行,看看您的应用程序是否已优化。
请描述更多您想要实现的目标,为什么在 PWA 中使用子域?
推荐阅读
- python - 如何从我的 python 应用程序将用户名和密码存储在 SQLite 数据库中?
- c# - 使用 TAP 进行多任务处理
- xml - 计算父元素并在字符串 XSLT 2 中返回它们
- r - 为ggplot2中的每个图例分配不同的背景颜色
- python - 如何继承 Odoo 12 中的 One2many 字段?
- python - 如何使用 Python 从一行文本中提取所需的文本?
- java - 在不导致消息排队的情况下降低 Kafka 消费者的吞吐量?
- c# - 后台服务中的 Task.Run 意外停止工作
- flutter - Firebase数据不会在flutter中没有热重载的情况下加载
- c++ - 我们可以在菱形继承模式中只使用一种虚拟继承吗?