深層連結
深層連結不僅是開啟應用程式的連結,還能將使用者帶到應用程式內部特定的「深層」位置。例如,一則運動鞋廣告的深層連結可能會開啟一個購物應用程式,並顯示該特定鞋款的產品頁面。
Flutter 支援 iOS、Android 和網頁上的深層連結。開啟 URL 會在您的應用程式中顯示該畫面。透過以下步驟,您可以使用具名路由(使用 routes
參數或 onGenerateRoute
),或使用 Router
小工具來啟動和顯示路由。
如果您在網頁瀏覽器中執行應用程式,則不需要額外的設定。路由路徑的處理方式與 iOS 或 Android 深層連結相同。預設情況下,網頁應用程式會使用以下模式從 URL 片段讀取深層連結路徑:/#/path/to/app/screen
,但可以透過設定應用程式的 URL 策略來變更。
如果您是視覺學習者,請觀看以下影片
開始使用
#若要開始使用,請參閱我們針對 Android 和 iOS 的 Cookbook
從基於外掛程式的深層連結遷移
#如果您已編寫外掛程式來處理深層連結,如 深層連結和 Flutter 應用程式 (Medium 上的一篇免費文章) 中所述,您應該選擇退出 Flutter 的預設深層連結處理程式。若要執行此操作,請在 Info.plist
中將 FlutterDeepLinkingEnabled
設定為 false,或在 AndroidManifest.xml
中將 flutter_deeplinking_enabled
設定為 false。
行為
#行為會根據平台以及應用程式是否已啟動並執行而略有不同。
平台 / 情況 | 使用 Navigator | 使用 Router |
---|---|---|
iOS (未啟動) | 應用程式取得 initialRoute ("/"),並在短時間後取得 pushRoute | 應用程式取得 initialRoute ("/"),並在短時間後使用 RouteInformationParser 來剖析路由,並呼叫 RouterDelegate.setNewRoutePath,該函式會使用對應的 Page 來設定 Navigator。 |
Android - (未啟動) | 應用程式取得包含路由 ("/deeplink") 的 initialRoute | 應用程式取得 initialRoute ("/deeplink"),並將其傳遞至 RouteInformationParser 來剖析路由,並呼叫 RouterDelegate.setNewRoutePath,該函式會使用對應的 Page 來設定 Navigator。 |
iOS (已啟動) | 呼叫 pushRoute | 剖析路徑,並使用一組新的 Page 來設定 Navigator。 |
Android (已啟動) | 呼叫 pushRoute | 剖析路徑,並使用一組新的 Page 來設定 Navigator。 |
當使用 Router
小工具時,您的應用程式能夠在應用程式執行時,當開啟新的深層連結時,取代目前的一組頁面。
了解更多
#- 學習 Flutter 的新導覽與路由系統 提供了 Router 系統的簡介。
- 深入了解 Flutter 深層連結,來自 Google I/O 2023 的影片
- Flutter 深層連結:終極指南,逐步教學,說明如何在 Flutter 中實作深層連結。
除非另有說明,否則本網站上的文件反映了 Flutter 的最新穩定版本。頁面最後更新於 2024-12-04。 檢視原始碼 或 回報問題。