【问题标题】:Web App Manifest: "start_url" doesn't work for SafariWeb 应用清单:“start_url”不适用于 Safari
【发布时间】:2017-02-21 22:31:08
【问题描述】:

"start_url" 适用于 Android 浏览器,但对于 iPhone,Safari 始终使用当前页面的 URL 并忽略 "start_url"

例如,当前页面是 https://test.com/index.html,在 manifest 上 "start_url" 设置为 "start_url": "index.html? flag=1",但是当页面在Safari上添加到主屏幕时,仍然使用https://test.com/index.html,不带参数。

有没有办法应用不同的 URL 作为 Safari 的启动 URL?

【问题讨论】:

标签: ios safari manifest iphone-standalone-web-app


【解决方案1】:

试试这个网址格式

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

【讨论】:

    【解决方案2】:

    我在这里实施的一个 hacky 解决方案是在提示用户安装 PWA 的页面上静默更改 URL:history.pushState({}, "", "/");(请参阅:https://stackoverflow.com/a/56691294/827129

    这将更新 URL,但不会导致页面重新加载或刷新 DOM,因此您可以正常看到您所在的页面,但是当用户去安装 PWA (Add to home screen) 时'将保存根 URL,以便他们在打开 PWA 时看到。

    这里的缺点包括:

    • 地址栏中的 URL 将更新(在移动设备上不是什么大问题)
    • 如果用户按下返回按钮,他们将“返回”到您触发 history.pushState() 的页面,因此他们需要按两次返回才能真正返回
    • 如果用户刷新页面,他们将看到主页

    在我的用例中,这已经足够好了,可能会有额外的解决方案来处理这些问题,这些解决方案可以应用在这个解决方案之上以改进用户体验。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2015-01-06
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2013-06-06
      • 2011-04-18
      相关资源
      最近更新 更多