Flutter Mobile和Web软件包同居

时间:2019-08-23 12:29:45

标签: flutter dart flutter-web

我正在使用目标android / ios / web启动一个flutter项目,有没有办法为移动和网络平台编写相同的lib代码?找不到诸如条件导入之类的解决方案。

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

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

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

我没有立即在我的小部件文件中导入flutter或flutter_web软件包,而是导入了该文件并根据需要对移动/ Web软件包进行了注释/取消注释。

我目前仅找到此解决方案,寻找更好的解决方案。

2 个答案:

答案 0 :(得分:2)

这是我发现的代码段,可能会有用。

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ïsDeniel的this回购以获取更多信息。

答案 1 :(得分: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的特殊情况。