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

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

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

为了解决上述问题,我实现了一个宏定义工具,可以像类似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

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值