【Flutter】为Flutter添加宏定义,跨平台助力,实现多平台发布

【Flutter】为Flutter添加宏定义,跨平台助力,实现多平台发布,第1张

我们知道,在Flutter中可以用 Platform.operatingSystem 实现平台差异代码,但它有一些不足:

一部分插件在web或windows平台无法编译,但在其它平台却要用到它;将所有代码都一起编译(哪怕是当前平台不需要的),增加了安装包体积;需要对代码实现多渠道发布,不同渠道使用不同代码或插件。

为了解决上述问题,我实现了一个宏定义工具,可以像类似C语言那样在dart代码中添加#ifdef #else,具体使用方法如下
1.在main.dart中添加宏定义

//    #ifdef WEB
/*  print('Hello web!');*/
//    #else
  print("Hello windows");
//    #endif

2.在pobspec.yaml中添加宏定义,并实现多个宏判断

  #ifdef ANDROID IOS APP
  flutter_bugly: ^0.4.3 #集成bugly 用于更新
  #endif

注意:#ifdef代码需要写入单行注释中,因为dart本身并不支持,在编译代码前运行命令,转换所有宏:
例如,编译Windows平台前,运行命令

definetool.exe -define WINDOWS

编译安卓前,运行命令:

definetool.exe -define ANDROID

这个工具本身是用dart写的,所以支持linux、windows、mac平台
下载地址:
https://github.com/fengdeyingzi/definetool/releases/tag/v1.3

开源地址:
https://github.com/fengdeyingzi/definetool

欢迎分享,转载请注明来源:内存溢出

原文地址: https://outofmemory.cn/web/990635.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-05-21
下一篇 2022-05-21

发表评论

登录后才能评论

评论列表(0条)

保存