WidgetsFlutterBinding.ensureInitialized();初始化开启
initializeDateFormatting 本地化资源文件的加载
FileStorage 用于存储文件数据
getApplicationDocumentsDirectory()
:获取应用文件目录(IOS和安卓通用),针对 Android 设备的 AppDate 目录,iOS 设备的 NSDocumentDirectory 目录
Loading.show();Loading.dismiss();
页面widget跳转
actions: [TextButton(onPressed: () {clickSelectDownloadedFirmware();}, child: Text("本地固件".local()))],clickSelectDownloadedFirmware() async {final r = await Get.to(() => FirmwareLocalPage(select: widget.select,downloaded: downloaded,gatewayModel: widget.gatewayModel,deviceModel: widget.deviceModel));Log.debug("click select back $r");update();if (widget.select && r is FirmwareModel) {Get.back(result: r);}}
Dio是一个专为Dart和Flutter设计的强大HTTP客户端库,支持全局设置、拦截器、FormData处理、请求的中止与取消、文件上传下载、请求超时、自定义适配器等功能。此项目遵循MIT许可协议,并由Chinese Flutter User Group (@cfug) 自2023年起维护。Dio提供了丰富的API来应对各种网络交互需求,是构建复杂网络应用的理想选择。
_dio?? 判断为空后赋值,否则不赋值
dio! 明确dio不为空
..interceptors 在对象的后面使用级联符号“..”加属性或方法,会返回对象的本身,类似于java中的Builde建造者模式
static Dio get dio => () {_dio ??= () {final dio = Dio(BaseOptions(baseUrl: baseUrl,))..interceptors.add(_DioCommonInterceptor());return dio;}.call();return _dio!;}.call();