跳至主要內容

深層連結

深層連結不僅是開啟應用程式的連結,還能將使用者帶到應用程式內部特定的「深層」位置。例如,一則運動鞋廣告的深層連結可能會開啟一個購物應用程式,並顯示該特定鞋款的產品頁面。

Flutter 支援 iOS、Android 和網頁上的深層連結。開啟 URL 會在您的應用程式中顯示該畫面。透過以下步驟,您可以使用具名路由(使用 routes 參數或 onGenerateRoute),或使用 Router 小工具來啟動和顯示路由。

如果您在網頁瀏覽器中執行應用程式,則不需要額外的設定。路由路徑的處理方式與 iOS 或 Android 深層連結相同。預設情況下,網頁應用程式會使用以下模式從 URL 片段讀取深層連結路徑:/#/path/to/app/screen,但可以透過設定應用程式的 URL 策略來變更。

如果您是視覺學習者,請觀看以下影片


Flutter 中的深層連結

開始使用

#

若要開始使用,請參閱我們針對 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 小工具時,您的應用程式能夠在應用程式執行時,當開啟新的深層連結時,取代目前的一組頁面。

了解更多

#