【问题标题】:Remove hash symbol ' # ' from Flutter web navigation从 Flutter 网页导航中移除井号“#”
【发布时间】:2020-06-11 14:32:33
【问题描述】:

我想用 Flutter web 创建一个简单的 web 应用程序,但是在我用这个文档创建了一些简单的应用程序后,我遇到了路由地址的一些问题,它会自动在地址栏上的 URL 中添加一个井号“#”符号,我想要知道如何从 URL 中删除这个标志,事实上,现在我在浏览器地址栏上看到了类似的东西:http://[::1]:54587/#/register 但我想实现类似http://[::1]:54587/register 的东西。

【问题讨论】:

标签: flutter flutter-web


【解决方案1】:

在网络上配置 URL 策略

  1. 包含flutter_web_plugins 包并在您的应用运行前调用setUrlStrategy 函数:

    依赖关系:
    flutter_web_plugins:
    sdk:颤动

  2. 使用以下代码创建一个 lib/configure_nonweb.dart 文件:

    void configureApp() { // 无操作。 }

  3. 使用以下代码创建一个 lib/configure_web.dart 文件:

    导入'包:flutter_web_plugins/flutter_web_plugins.dart'; 无效配置应用程序(){ setUrlStrategy(PathUrlStrategy()); }

  4. 打开 lib/main.dart 并在 html 包可用时有条件地导入 configure_web.dart,或者在不可用时导入 configure_nonweb.dart:

    import 'package:flutter/material.dart'; 导入 'configure_nonweb.dart' if (dart.library.html) 'configure_web.dart';

    无效的主要(){ 配置应用程序(); 运行应用程序(我的应用程序()); }

【讨论】:

    【解决方案2】:

    如果你唯一关心的是路由,你可以在这里查看我的答案:https://stackoverflow.com/a/63042805/210417

    基本上它只是将当前 URL 拆分为一个 List,然后删除由 hash 标签引起的空的。

    【讨论】:

      猜你喜欢
      • 2018-11-27
      • 2018-07-28
      • 2020-04-19
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2018-01-28
      • 2022-12-05
      相关资源
      最近更新 更多