簡體   English   中英

Web 應用清單:“start_url”不適用於 Safari

[英]Web App Manifest: "start_url" doesn't work for Safari

“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?

"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?

我在這里實現的一個 hacky 解決方案是在提示用戶安裝 PWA 的頁面上靜默更改 URL: history.pushState({}, "", "/"); (見: https : //stackoverflow.com/a/56691294/827129

這將更新 URL,但不會導致頁面重新加載或刷新 DOM,因此您可以正常看到您所在的頁面,但是當用戶去安裝 PWA( Add to home screen )時,它會保存根 URL,以便他們在打開 PWA 時看到的內容。

這里的缺點包括:

  • 地址欄中的 URL 將更新(在移動設備上不是什么大問題)
  • 如果用戶按下后退按鈕,他們將“返回”到您觸發history.pushState()的頁面,因此他們需要按兩次后退才能真正返回
  • 如果用戶刷新頁面,他們將看到主頁

在我的用例中,這已經足夠好了,可能會有額外的解決方案來處理這些問題,這些問題可以應用在這個解決方案之上以改進 UX。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM