Newer
Older
flutterBaseApp / lib / common / global.dart
StephanieGitHub on 9 Feb 2021 1 KB first commit
import 'dart:io';

import 'package:flustars/flustars.dart';
import 'package:flutter/material.dart';
import 'package:flutter/services.dart';
import 'package:flutter/widgets.dart';

import 'package:base_app/common/common.dart';

class Global {
  //初始化全局信息
  static Future init(VoidCallback callback) async {
    WidgetsFlutterBinding.ensureInitialized();
    await SpUtil.getInstance();
    // 系统初始化配置
    String readFormLocal = SpUtil.getString(BaseConstant.keyReadFormLocal);
    if (readFormLocal == null || readFormLocal == "") {
      // 默认使用网络
      SpUtil.putString(BaseConstant.keyReadFormLocal, "false");
    }
    // 临时测试用,重置url
    // SpUtil.putString(Constant.key_url, BaseConstant.serverAddress); // 请求ip和端口

    String baseUrl = SpUtil.getString(Constant.key_url);
    if (baseUrl == null || baseUrl == "") {
      SpUtil.putString(Constant.key_url, BaseConstant.serverAddress); // 请求ip和端口
    }

    // 设置强制竖屏
    if (Platform.isAndroid) {
      // 以下两行 设置android状态栏为透明的沉浸。写在组件渲染之后,是为了在渲染后进行set赋值,覆盖状态栏,写在渲染之前MaterialApp组件会覆盖掉这个值。
      SystemUiOverlayStyle systemUiOverlayStyle =
          SystemUiOverlayStyle(statusBarColor: Colors.transparent);
      SystemChrome.setSystemUIOverlayStyle(systemUiOverlayStyle);
      // 强制竖屏
      SystemChrome.setPreferredOrientations(
          [DeviceOrientation.portraitUp, DeviceOrientation.portraitDown]);
    }
    callback();
  }
}

class Router {
  static GlobalKey<NavigatorState> navigatorKey = GlobalKey();
}