start_url

可用性有限

此特性不是基線特性,因為它在一些最廣泛使用的瀏覽器中不起作用。

start_url manifest 成員用於指定當使用者啟動您的 Web 應用程式時(例如,在裝置的主螢幕或應用程式列表中點選應用程式圖示時)應該開啟的 URL。

注意: start_url 是給瀏覽器的提示。 瀏覽器在處理 start_url 的方式上具有靈活性,並且不一定始終使用指定的值。

語法

json
/* Absolute URLs */
"start_url": "https://example.com/myapp"
"start_url": "https://myapp.com/home"

/* Relative URLs */
"start_url": "/"
"start_url": "../index.html"

start_url

一個字串,表示 Web 應用程式的起始 URL。該 URL 可以是絕對的也可以是相對的。如果值為相對值,則相對於 manifest 檔案進行解析。

如果 start_url 未指定或值為無效(即,不是字串、不是有效 URL,或與連結到 manifest 的頁面不是 同源),則使用連結到 manifest 的頁面的 URL。

注意: 在某些瀏覽器上,對於 PWA 可安裝必須指定 start_url(請參閱下面的相容性部分)。您可以設定 "start_url": "./" 來在所有瀏覽器上使用預設行為。

注意: 如果 manifest 中未指定 scope,它將從 start_url(或在值未定義或無效時從有效 start_url)推斷出來。

描述

start_url 允許您推薦一個適合所有使用者的通用入口點。

當用戶安裝 Web 應用程式時,安裝會從他們當前正在檢視的頁面進行。在安裝過程中,瀏覽器會獲取連結自該頁面的 manifest 檔案。雖然 manifest 檔案可以從任何源提供,但安裝過程與啟動它的頁面相關聯。考慮以下場景:

  • 安裝頁面是 https://myapp.example.com/index.html
  • manifest 檔案託管在 https://assets.cdn.com/manifest.json
  • start_urlhttps://myapp.example.com/home

此示例中指定的 start_url 將被使用,因為它與正在安裝應用程式的頁面同源。如果指定的 start_url 位於不同的源(例如,https://differentapp.example.com/home),瀏覽器將回退使用安裝頁面的 URL 作為起始點。這確保了 Web 應用程式只能在自己的源內的頁面上啟動。

但請注意,瀏覽器不一定非要使用指定的 URL。它們可能會忽略指定的值,或者提供選項讓使用者不使用它。它們還可能允許使用者在建立 Web 應用程式的書籤時或稍後修改 URL。在設計應用程式時,請記住這一點,以便能夠適應 start_url 的各種情況。

最佳實踐

此 URL 應將使用者導航到您應用程式的重要頁面,例如儀表板。考慮使用者在啟動應用程式後希望立即訪問的功能。如果您的應用程式的主頁位於您站點的根目錄,您可以將 start_url 設定為 /。您還可以指定一個深度連結(例如,https://myapp.com/product/whatsnew)來將使用者引導至您應用程式內的特定內容。避免指定一個通用的起始頁面。

出於安全原因,start_url 必須與 manifest URL 同源。如果指定了非同源的 start_url,瀏覽器將回退使用連結到 manifest 的頁面作為預設起始頁面。

隱私注意事項

  • 指紋識別:

    將字串編碼到 start_url 中以唯一標識使用者(例如,伺服器分配的識別符號,如 ?user=123/user/123/https://user123.foo.bar)會建立持久的指紋。使用者可能不知道他們的隱私敏感資訊即使在清除站點資料後仍然存在。在 start_url 中包含任何可能唯一標識使用者的​​資訊都是不良做法。

    瀏覽器可能會提供針對此類指紋的保護。例如,當用戶清除某個源的資料時,瀏覽器可能會提示他們解除安裝該源範圍內的應用程式。這將移除應用程式 start_url 中的任何潛在指紋。

  • 啟動跟蹤:

    start_url 新增引數以指示應用程式是從瀏覽器外部啟動的(例如,"start_url": "index.html?launcher=homescreen")可能對分析和自定義很有用。但是,此資訊可以用作使用者數字指紋的一部分。在實現此類跟蹤時,請考慮潛在的隱私影響。

示例

指定絕對起始 URL

假設您的徒步旅行 Web 應用程式的 manifest 檔案位於 https://hiking-pro.com/resources/manifest.json,並且 https://hiking-pro.com/index.html 連結到該 manifest 檔案。您希望使用者在啟動應用程式時登陸 trail-hub.html 頁面。您可以在 manifest 檔案中這樣指定此起始 URL:

json
{ "start_url": "https://hiking-pro.com/trail-hub.html" }

start_url 值是有效的,因為它與 manifest URL(https://hiking-pro.com/resources/manifest.json)同源。

以下 start_url 是無效的,因為它與 manifest URL 不同源:

json
{ "start_url": "https://other-domain.com/trail-hub.html" }

在上述情況下,當用戶啟動應用程式時,將使用 https://hiking-pro.com/index.html 作為預設起始頁面。

指定相對起始 URL

對於前面場景中的徒步旅行應用程式,您可以使用相對 URL 指定相同的起始點,如下所示。此相對 URL 將根據 manifest 檔案(https://hiking-pro.com/resources/manifest.json)解析為 https://hiking-pro.com/trail-hub.html

json
{ "start_url": "../trail-hub.html" }

規範

規範
Web 應用清單
# start_url-member

瀏覽器相容性

另見