Bru*_*ceM 5 progressive-web-apps
我让Chrome浏览器在Android上安装了PWA-安装完成后,我想自动关闭从中安装它的浏览器窗口,然后打开PWA(这样用户就不会继续在浏览器窗口中以为他们正在使用PWA)-这可能吗?
我一直在寻找类似的解决方案,但还没有找到一种方法来做到这一点。到目前为止,我尝试描述我的发现:
关闭浏览器窗口:
如本答案中所述window.close() 只能在脚本自行打开的窗口/选项卡上调用。那里正在讨论一些可能的解决方法。
安装后立即打开 PWA:
谷歌在他们的WebApk 基础文章中描述如下:
当 Progressive Web App 安装在 Android 上时,它将为应用程序范围内的所有 URL 注册一组意图过滤器。当用户单击应用程序范围内的链接时,应用程序将被打开,而不是在浏览器选项卡中打开。
我希望在从仍然打开的浏览器窗口安装/添加到主屏幕后也能正常工作。
基于对两台 Android 设备的测试,目前似乎用户必须从主屏幕手动打开 PWA一次,以便 chrome/android 将网络应用程序 manifest.json 的范围解释为打算独立打开页面。
这对于甚至 iOS 似乎处理这种不同的情况来说都是可悲的。
也许我忽略了 Google 文章中的某些内容?我也不完全理解 androids 意图 API - 所以也许有一些方法仍然可以实现(?)
基于这篇博文:
安装 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)
| 归档时间: |
|
| 查看次数: |
865 次 |
| 最近记录: |