web-dev-qa-db-fra.com

Navigation par URL Web Flutter

Je voudrais savoir comment accéder à une URL dans mon application Web Flutter.

J'utilise actuellement la Navigator.of(context).Push(MaterialPageRoute(...)); et je ne reçois que localhost:5354/#/ dans la barre d'adresse.

Je voudrais également savoir comment naviguer directement vers une URL particulière en collant simplement l'URL dans la barre d'adresses du navigateur.

2
Norbert

Vous devez utiliser des routes nommées au lieu d'utiliser directement des classes pour les routes. Vous pouvez utiliser ce package nommé fluro https://pub.dev/packages/fluro ou bien vous pouvez utiliser la navigation par défaut fournie par flutter.

avec fluro, vous pouvez faire quelque chose comme ça

main.Dart

import '../routes/routes.Dart';


void main() {
  FluroRouter.setupRouter();
// run app
}

class MyApp extends StatelessWidget {
  @override
  Widget build(BuildContext context) {
    return MaterialApp(
      initialRoute: '/',
      onGenerateRoute: FluroRouter.router.generator,
    );
  }
}

routes.Dart

import 'package:fluro/fluro.Dart';
import 'package:flutter/material.Dart';

class FluroRouter {
  static Router router = Router();
  static Handler _storyhandler = Handler(
      handlerFunc: (BuildContext context, Map<String, dynamic> params) =>
          HomeView(id: params['id'][0]));
  static Handler _homehandler = Handler(
      handlerFunc: (BuildContext context, Map<String, dynamic> params) =>
          Home());
  static void setupRouter() {
    router.define(
      '/',
      handler: _homehandler,
    );
    router.define(
      '/story/:id',
      handler: _storyhandler,
    );
  }
}

vous pouvez également définir des itinéraires avec des paramètres de requête.

J'espère que cela t'aides!

3
Shekar Mudaliyar