一旦安装了PWA,请关闭浏览器窗口并打开PWA。

Bru*_*ceM 5 progressive-web-apps

我让Chrome浏览器在Android上安装了PWA-安装完成后,我想自动关闭从中安装它的浏览器窗口,然后打开PWA(这样用户就不会继续在浏览器窗口中以为他们正在使用PWA)-这可能吗?

gau*_*lla 6

我一直在寻找类似的解决方案,但还没有找到一种方法来做到这一点。到目前为止,我尝试描述我的发现:


关闭浏览器窗口

如本答案中所述window.close() 只能在脚本自行打开的窗口/选项卡上调用。那里正在讨论一些可能的解决方法。


安装后立即打开 PWA:

谷歌在他们的WebApk 基础文章中描述如下:

当 Progressive Web App 安装在 Android 上时,它将为应用程序范围内的所有 URL 注册一组意图过滤器。当用户单击应用程序范围内的链接时,应用程序将被打开,而不是在浏览器选项卡中打开。

我希望在从仍然打开的浏览器窗口安装/添加到主屏幕后也能正常工作。

基于对两台 Android 设备的测试,目前似乎用户必须从主屏幕手动打开 PWA一次,以便 chrome/android 将网络应用程序 manifest.json 的范围解释为打算独立打开页面。

这对于甚至 iOS 似乎处理这种不同的情况来说都是可悲的。

也许我忽略了 Google 文章中的某些内容?我也不完全理解 androids 意图 API - 所以也许有一些方法仍然可以实现(?)

  • @gauguerilla,是的,实际上,现在 Windows 中的“PWA”(仅使用 Chrome)自动执行此功能,即当我们安装“PWA”时,它会自动关闭选项卡并在桌面应用程序中打开它,但不在 Android 设备中打开它,所以我问现在适用于 Android 设备。 (2认同)

jes*_*ess 3

基于这篇博文:

安装 PWA 后,它将出现在主屏幕、应用程序启动器、设置中以及操作系统中任何其他一等公民应用程序中,包括有关系统中使用的电池和空间的信息。

当用户从主屏幕打开应用程序时,会发生跟踪事件。这意味着用户已经单击了应用程序的图标,或者在支持 WebAPK 的 Android 上,还单击了指向 PWA 范围的链接,并且需要关闭浏览器。

start_url: '/?utm_source=standalone&utm_medium=pwa'
Run Code Online (Sandbox Code Playgroud)

此外,以下脚本为我们留下了一个布尔值,说明用户当前是在浏览器中(true)还是独立应用程序模式(false)

var isPWAinBrowser = true;
// replace standalone with fullscreen or minimal-ui according to your manifest
if (matchMedia('(display-mode: standalone)').matches) {
     // Android and iOS 11.3+
     isPWAinBrowser = false;
} else if ('standalone' in navigator) {
     // useful for iOS < 11.3
     isPWAinBrowser = !navigator.standalone;
}
Run Code Online (Sandbox Code Playgroud)

  • 谢谢,但不是我要找的。用户将 PWA 安装到主屏幕后,他们会被发送回他们启动安装的浏览器窗口。他们可能错误地认为自己现在在应用程序中。我想关闭浏览器窗口,以便他们被迫从主屏幕查找并打开新安装的应用程序。 (2认同)