RainVisitor Blog

RainVisitor

【文章內容使用 Gemini 1.5 Pro 自動產生】

原文:https://medium.com/flutter/handling-404-page-not-found-error-in-flutter-731f5a9fba29

Flutter 釋出了網頁支援,允許您建立動態網站。Flutter 支援處理任何可能來自網頁使用的錯誤,例如 404 錯誤。但是,如何為您的 Flutter 應用程式製作自訂 404 頁面呢?

本文將說明如何建立在使用者導航到不存在的頁面時顯示的自訂頁面。

如何在 Flutter 中將客戶端重新導向到自訂 404 頁面

在瀏覽網際網路時,每個人都遇到過「404:頁面未找到錯誤」。Flutter 透過自動將您重新導向到初始路徑來處理此問題。這通常是您應用程式的首頁。但是,如果您想要像 [AirBnb](https://36bvmt283fg61unuud3h7qua-wpengine.netdna-ssl.com/wp-content/uploads/2013/03/airbnb-404.gif)、[GitHub](https://mamchenkov.net/wordpress/wp-content/uploads/2013/11/github-404.png) 甚至 [Flutter 網站](https://flutter.dev/foo) 那樣擁有華麗的 404 頁面該怎麼辦?您可以使用 Flutter 很輕鬆地做到這一點。

若要建立自訂 404 頁面,您的應用程式需要使用 MaterialApp、CupertinoApp 或 WidgetsApp Widget。大多數應用程式使用這三個 Widget 之一;它是在建立 Flutter 應用程式時呼叫的第一個 Widget。

MaterialApp 會將頂層 Navigator 組態設定為按以下順序搜尋路徑:

  1. 對於 `/` 路徑,如果非空,則使用 [home](https://api.flutter.dev/flutter/material/MaterialApp/home.html) 屬性。
  2. 否則,如果它包含該路徑的條目,則使用 [routes](https://api.flutter.dev/flutter/material/MaterialApp/routes.html) 表格。
  3. 否則,如果提供,則呼叫 [onGenerateRoute](https://api.flutter.dev/flutter/material/MaterialApp/onGenerateRoute.html)。它應該為任何有效的路徑返回一個非空值,這些路徑未由 [home](https://api.flutter.dev/flutter/material/MaterialApp/home.html) 和 [routes](https://api.flutter.dev/flutter/material/MaterialApp/routes.html) 處理。
  4. 最後,如果所有其他方法都失敗了,則呼叫 [onUnknownRoute](https://api.flutter.dev/flutter/material/MaterialApp/onUnknownRoute.html)。

如果您的路徑在這些表格中都沒有處理,則它使用 [onUnknownRoute](https://api.flutter.dev/flutter/material/MaterialApp/onUnknownRoute.html) 屬性來處理您的導航。此回呼通常用於錯誤處理。例如,此函數可能會始終產生一個「未找到」頁面,描述未找到的路徑。位置不明的路徑可能是由於應用程式中的錯誤或從 Android 意圖等外部請求推送路徑造成的。

以下範例程式碼演示如何為 onUnknownRoute 屬性定義一個匿名函數,該函數使用 RouteFactory,RouteFactory 是一個工廠方法,它以 RouteSettings 函數作為輸入,並返回一個 Route。以下程式碼片段顯示定義 onUnknownRoute 屬性可以多麼簡單:

1
2
3
onUnknownRoute: (settings) {
return MaterialPageRoute(builder: (_) => PageNotFound());
},

PageNotFound 是一個自訂 Widget,用於建立 404 頁面。此頁面可能會說明發生了什麼情況,並將使用者重新導向到首頁,但在建立 404 頁面時,您可以隨心所欲。

結束語

在建立 Flutter 應用程式時,重要的是要處理任何可能發生的問題。在 MaterialApp、CupertinoApp 或 WidgetApp 中使用 onUnknownRoute 屬性,可以讓您處理網站中不可避免的「頁面未找到」錯誤。

若要進一步了解 Flutter 中的路徑,請參閱 Medium 文章 [「使用命名路徑導航 URL 」](https://medium.com/flutter/flutter-web-navigating-urls-using-named-routes-307e1b1e2050)。

關於作者:Jose 最近從大學畢業,現在在 [Material](https://material.io) 工作,Material 是一個設計系統,幫助團隊建立高品質的數位體驗。Jose 的團隊維護 Flutter 的 [material 函式庫](https://api.flutter.dev/flutter/material/material-library.html)。若要進一步了解,請訪問 Jose 在 [GitHub](https://github.com/JoseAlba)、[LinkedIn](https://www.linkedin.com/in/josealba1996/)、[YouTube](https://www.youtube.com/channel/UCOdKA_On0oPe1tz02z1QfxA?view_as=subscriber) 和 [Instagram](https://www.instagram.com/jose.alba/) 上的頁面。

【文章內容使用 Gemini 1.5 Pro 自動翻譯產生】

原文:https://medium.com/dartlang/announcing-sound-null-safety-defd2216a6f3

宣告可靠的空值安全

作者:Filip Hracek 和 Michael Thomsen

今天,Dart 團隊迎來了一個重要的里程碑,我們推出了空值安全功能的技術預覽版。空值安全可以幫助您避免一類通常難以發現的錯誤,並且額外帶來一系列效能提升。我們現在發佈的是早期技術預覽版,期待您的回饋。

閱讀全文 »

【文章內容使用 Gemini 1.5 Pro 自動產生】

黑人的命也是命

我們這週不會發佈 #FlutterGoodNewsWednesday 文章。

Flutter 和 Dart 團隊在此想藉此機會與黑人社群站在一起,並告訴您:我們與您同在,我們看到了您,我們支持您。本週美國發生的事件再次令人痛苦地意識到,系統性的種族主義仍然很普遍,正義在我們的社會中分配不均。

閱讀全文 »

【文章內容使用 Gemini 1.5 Pro 自動產生】

原文:https://medium.com/flutter/two-months-of-fluttergoodnewswednesday-a12e60bab782

兩個月的 #FlutterGoodNewsWednesday

當我們意識到今年春天將會很不一樣,沒有往常的活動和連線點時,我們決定尋找一種新的方式,將我們的各種公告與您分享。我們中的幾個人聚在一起,於是 #FlutterGoodNewsWednesday 就誕生了。在過去的兩個月裡,我們每個星期都會分享一些新的內容,希望讓您露出笑容。本週,我們想追蹤一下我們迄今為止所做的部分公告,並分享一些進一步的更新。

閱讀全文 »

【文章內容使用 Gemini 1.5 Pro 自動產生】

原文:https://medium.com/flutter/save-the-date-flutter-day-june-25-2020-8e9f5fd03248

預留日期:Flutter Day,2020 年 6 月 25 日

作為一個團隊,我們習慣於大量的旅行,在各種活動和使用者群組中閒逛,並與人們面對面交流;我們懷念與 Flutter 社群在一起的時光!因此,雖然我們無法面對面聚會,但我們將做接下來最好的事情:用一個專門的 Flutter 日來讓聚會來到您的身邊。

閱讀全文 »

【文章內容使用 Gemini 1.5 Pro 自動產生】

原文:https://medium.com/flutter/flutter-package-ecosystem-update-d50645f2d7bc

Flutter 套件生態系統更新

Google 的 Flutter 團隊只有一個工作:為開發者提供跨多個平台構建美麗、原生應用程式的管道。當 Flutter 還很新時,團隊透過專注於少數最初的客戶來實現了這個目標。這導致了文字和圖形的可攜式渲染引擎的誕生。接下來是擴展其覆蓋範圍,團隊透過吸引開發者,結合 Dart 平台的強大功能,易於使用的 Flutter API,以及跨 Android 和 iOS 的原生編譯,來實現了這個目標。隨著客戶群的增長,他們的需求也隨之增長,促使團隊利用 Dart 的 pub.dev 提供 Flutter 套件管理員和發現機制,將套件作者與應用程式開發者聯繫起來。

閱讀全文 »

【文章內容使用 Gemini 1.5 Pro 自動產生】

原文:https://medium.com/flutter/optimizing-performance-in-flutter-web-apps-with-tree-shaking-and-deferred-loading-535fbe3cd674

為 Flutter 網頁應用程式最佳化效能:使用 Tree Shaking 和延遲載入

為了提供最佳的使用者體驗,應用程式快速載入非常重要。透過縮減 Flutter 網頁應用程式的 JavaScript 捆綁包,可以改善其初始載入時間。Dart 編譯器包含 Tree Shaking 和延遲載入等功能,這兩者都可以縮減 JavaScript 捆綁包。本文將解釋它們的工作原理以及如何在應用程式中使用它們。

閱讀全文 »

【文章內容使用 Gemini 1.5 Pro 自動產生】

原文:https://medium.com/flutter/what-are-the-important-difficult-tasks-for-flutter-devs-q1-2020-survey-results-a5ef2305429b

Flutter 開發人員的哪些任務重要且困難? - 2020 年第一季調查結果

作者:JaYoung Lee 和 Youyang Hou

我們每季都會對 Flutter 開發人員進行調查,以更好地了解您如何使用 Flutter 以及我們可以改進哪些方面。今天,我們將發佈第八次季度調查的結果,該調查於 2020 年 2 月進行。我們在 8 天內收到了大約 6,000 份回覆,很高兴地得知,有史以來最高比例的開發人員(94.5%)表示對 Flutter 感到滿意。雖然我們每季都會問一些問題以了解長期趨勢,但本季度的調查特別側重於識別對使用者而言重要且困難的關鍵任務。在深入探討結果之前,以下是一些其他的有趣發現。

閱讀全文 »
0%