Web App清单:Safari中的“start_url”无法使用

7
"start_url" 对于 Android 浏览器有效,但是对于 iPhone,Safari 总是使用当前页面的 URL,并忽略 "start_url"。
例如,当前页面是 https://test.com/index.html,在清单中,"start_url" 被设置为 "start_url": "index.html?flag=1",但是当页面被添加到 Safari 主屏幕时,它仍然使用 https://test.com/index.html,没有参数。
是否有一种方法可以将不同的 URL 应用为 Safari 的启动 URL?"

2
你可以尝试使用这个库 https://github.com/GoogleChrome/pwacompat。 - jeremy castelli
@jeremycastelli,谢谢,这个库完成了它的工作。 - alehro
2个回答

1
我实现了一个 hacky 解决方案,即在提示用户安装 PWA 的页面上静默更改 URL:history.pushState({}, "", "/");(参见:https://dev59.com/SVUK5IYBdhLWcg3wwSLg#56691294)。这将更新 URL,但不会导致页面重新加载或刷新 DOM,因此您可以像平常一样查看所在的页面,但当用户去安装 PWA(添加到主屏幕)时,它将保存根 URL,所以当他们打开 PWA 时就会看到根 URL。
其中的缺点包括:
  • 地址栏中的 URL 将更新(在移动设备上不是很重要)
  • 如果用户按下返回按钮,他们将“返回”到您触发 history.pushState() 的页面,因此他们需要按两次返回才能真正返回
  • 如果用户刷新页面,他们将看到首页
在我的使用场景中,这已经足够好了,可能还有其他解决这些问题的额外解决方案,可以在此解决方案之上应用以提高 UX。

-1

尝试使用这个网址格式

"start_url": "./index.html?flag=1"


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接