【问题标题】:Flutter Mobile and Web packages cohabitationFlutter Mobile 和 Web 包同居
【发布时间】:2019-12-28 18:47:39
【问题描述】:

我正在使用目标 android/ios/web 开始一个颤振项目,有没有办法为移动和 Web 平台编写相同的 lib 代码?没有找到条件导入之类的解决方案。

在我的项目中,我创建了一个文件“global_import.dart”,其中包含针对网络和移动设备的所有导入细节,如下所示:

//mobile packages
/*
export 'package:flutter/material.dart';
*/

//web packages
///*
export 'package:flutter_web/material.dart';
//*/

我没有在我的小部件文件中立即导入 flutter 或 flutter_web 包,而是导入此文件并根据需要注释/取消注释移动/网络包。

目前我只找到了这个解决方案,正在寻找更好的解决方案。

【问题讨论】:

    标签: flutter dart flutter-web


    【解决方案1】:

    Flutter 1.9 版他们删除了

    import 'package:flutter_web/material.dart'
    

    现在可以直接使用包了

    import 'package:flutter/material.dart';
    

    https://www.youtube.com/watch?v=wzNd3yyLcaU

    Flutter web 项目现在可以导入所有正常的 Flutter 导入,不再需要开发 web 的特殊情况。

    【讨论】:

    • 我无法直接让 flutter_web 颤动。 yaml文件是否需要做任何更改?
    【解决方案2】:

    这是我发现的一个代码 sn-p,可能有用。

    export 'package:flutter_stub/material.dart'
      // ignore: uri_does_not_exist
      if (dart.library.html) 'package:flutter_web/material.dart'
      // ignore: uri_does_not_exist
      if (dart.library.io) 'package:flutter/material.dart';
    

    https://github.com/aloisdeniel/flutter_shared_ui_poc/blob/master/packages/flutter_cross/lib/material.dart

    查看 Aloïs Deniel 的 this repo 了解更多信息。

    【讨论】:

    • 谢谢,我会看看。正如作者所写,它是flutter_web合并之前的临时解决方案。
    猜你喜欢
    • 2020-05-25
    • 2020-06-08
    • 2022-10-14
    • 1970-01-01
    • 2019-09-28
    • 2020-10-12
    • 2021-08-26
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多