mcpField
D
deep-linking-for-flutter-web

deep-linking-for-flutter-web

github.com/rodydavis開発6053 回インストール2 週間前に更新
リポジトリ

deep-linking-for-flutter-web について

Flutter Web アプリで URL ナビゲーションを実装する方法を解説する、Flutter 開発者向けのチュートリアルスキルです。複数ページや動的ルート、ブラウザー履歴を扱います。

主な機能

  1. 01URL によるページナビゲーション
  2. 02複数ページのルーティング
  3. 03ID を使った動的ルート
  4. 04ブラウザーの戻るボタン対応
  5. 05カスタム遷移と保護ルート

活用シーン

  1. 01特定ページへの直接リンク追加
  2. 02URL の ID に応じたページ遷移
  3. 03ブラウザーの戻る操作への対応

インストール

コマンドをコピーしてターミナルで実行します。

$npx skills add https://github.com/rodydavis/skills --skill deep-linking-for-flutter-web

インストール後、Claude Code で/deep-linking-for-flutter-webを入力して読み込まれたか確認します。

詳細

Flutter Web のディープリンク

この記事では、アプリケーションで適切な URL ナビゲーションを実現する方法を紹介します。特定のページへのリンク、保護されたルート、カスタムトランジションを設定します。

TLDR 最終的なソースはこちらです:ここ。オンラインのデモもあります。

セットアップ

「flutter_deep_linking」という名前で新しい Flutter プロジェクトを作成します。

そのフォルダーを VSCode で開きます。

「pubspec.yaml」を次のように更新します。

README の画像

ステップ 1

「lib/ui/home/screen.dart」ファイルを作成し、次の内容を追加します。

README の画像

「lib/main.dart」を次のように更新します。

README の画像

アプリケーションを実行すると、次のように表示されます。

README の画像

ステップ 2

次に、ユーザーがアドレスバーに入力した URL を取得します。

「lib/plugins/navigator」フォルダーを作成します。

その中に「web.dart」という名前のファイルを作成し、次の内容を追加します。

README の画像

その中に「unsupported.dart」という名前のファイルを作成し、次の内容を追加します。

README の画像

その中に「navigator.dart」という名前のファイルを作成し、次の内容を追加します。

README の画像

次に、「lib/main.dart」ファイルに戻り、ナビゲーターを追加します。

README の画像

Web コンパイル用の条件付きインポートが含まれるため、上記のようにナビゲーターをインポートすることが重要です。

ここでアプリを実行しても、何も変わらないはずです。

ステップ 3

次に、適切なルーティングを追加します。

新しいファイル「lib/ui/router.dart」を作成し、次の内容を追加します。

README の画像

また、「lib/main.dart」も次のように更新します。

README の画像

MaterialApp の「home」フィールドを削除した点に注目してください。ルーターがすべてを処理するためです。デフォルトでは「/」にアクセスするとホームに移動します。

ステップ 4

次に、動作を確認するために複数の画面を追加しましょう。次のフォルダーとファイルを追加します。

「lib/ui/account/screen.dart」ファイルを作成し、次の内容を追加します。

README の画像

「lib/ui/settings/screen.dart」ファイルを作成し、次の内容を追加します。

README の画像

「lib/ui/about/screen.dart」ファイルを作成し、次の内容を追加します。

README の画像

次の内容を「lib/ui/router.dart」に追加します。

README の画像

これで /about、/account、/settings に移動すると、新しいページが表示されます!

README の画像

ステップ 5

ブラウザーのナビゲーションボタンと連携させましょう!「lib/ui/home/screen.dart」を次のように更新します。

README の画像

アプリケーションを実行して設定アイコンをクリックすると、新しい画面が期待どおりに起動します。ただし、ブラウザーの戻るボタンをクリックすると、ホーム画面に戻ります!

README の画像

README の画像

ステップ 6

これらの URL は便利ですが、事前にわからない ID などのデータを渡したい場合はどうすればよいでしょうか?ご心配なく!

「lib/ui/account/screen.dart」を次のように更新します。

README の画像

「lib/ui/router.dart」も次のように更新しましょう。

README の画像

アプリケーションを実行して「/account/40」に移動すると、次のように表示されます。

README の画像

まとめ

動的ルートは Flutter Web でうまく機能します。どこを調整すればよいかを知っておくだけです!このパッケージでは、いくつかの修正を加えた fluro のフォーク版を使用していますが、PR がマージされたら通常のパッケージを使えます。以下で感想をお聞かせください。また、私が気づいていない、より良い方法があれば教えてください!

最終的なコードはこちらです:https://github.com/rodydavis/flutter_deep_linking

コメント