LoginSignup
1
1

More than 1 year has passed since last update.

Flutter for WebでURLの#を消す方法

Posted at

くどい導入は、めんどくさいので書きません笑

使うのは url_strategy というパッケージ
https://pub.dev/packages/url_strategy

サンプルコード

main.dart
import 'package:flutter/material.dart';

void main() {
  runApp(MyApp());
}

class MyApp extends StatelessWidget {
  @override
  Widget build(BuildContext context) {
    return MaterialApp(
      title: '#消すサンプル',
      debugShowCheckedModeBanner: false,
      home: HomePage(),
    );
  }
}

class HomePage extends StatelessWidget {
  @override
  Widget build(BuildContext context) {
    return Scaffold(
      body: Center(child: Text('🧸', style: TextStyle(fontSize: 30),),),
    );
  }
}

ではこれを、Chromeでデバッグ表示しましょう

flutter run -d chrome --web-renderer html

スクリーンショット 2021-06-30 1.30.15.png

ちゃんと表示されましたね!嬉しいっ!
でも、、、検索窓を見てください↓
スクリーンショット 2021-06-30 1.31.04.png
URIに余計な#がついていますね
これは、Flutter web のデフォルトの設定のようです

では、このハッシュタグちゃんを消しちゃいましょう!
方法は簡単
こちらのパッケージを読み込んで…↓
https://pub.dev/packages/url_strategy

pubspec.yaml
dependencies:
  flutter:
    sdk: flutter

  #to delete hash
  url_strategy: 任意のバージョン

メイン関数のrunAppの前に、追加するだけ↓

main.dart
import 'package:flutter/material.dart';
import 'package:url_strategy/url_strategy.dart';

void main() {
  // ここに追加
  setPathUrlStrategy();
  runApp(MyApp());
}

// 以下同じ
class MyApp extends 

コンソールで r ホットリスタートすると…↓

🔥  To hot restart changes while running, press "r" or "R".
For a more detailed help message, press "h". To quit, press "q".

Performing hot restart...                                           3.1s
Restarted application in 3,137ms.

ちゃんと消えましたね!↓

スクリーンショット 2021-06-30 1.39.00.png

Flutter Web はまだまだ発展途上なので、今後も注視したいです…!

今回のコードはこちら↓
https://github.com/ReiyaMori/flutter_web_delete_hash

1
1
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
1