flutter Platform介绍

这是我参与8月更文挑战的第8天,活动详情查看:8月更文挑战linux

#Platform 在dart:io中,提供与Platform类的API奇偶校验,但使用实例属性而不是静态属性。这种差别容许在测试中使用这些API,您能够在其中提供模拟实现。android

看一下构造方法:ios

class Platform { 
  static int get numberOfProcessors => _numberOfProcessors;
  static String get pathSeparator => _pathSeparator;
  static String get localeName => _Platform.localeName();
  static String get operatingSystem => _operatingSystem;
  static String get operatingSystemVersion => _operatingSystemVersion;
  static String get localHostname => _localHostname;
  static final bool isLinux = (_operatingSystem == "linux");
  static final bool isMacOS = (_operatingSystem == "macos");
  static final bool isWindows = (_operatingSystem == "windows");
  static final bool isAndroid = (_operatingSystem == "android");
  static final bool isIOS = (_operatingSystem == "ios");
  static final bool isFuchsia = (_operatingSystem == "fuchsia");
  static Map<String, String> get environment => _Platform.environment;
  static String get executable => _Platform.executable;
  static String get resolvedExecutable => _Platform.resolvedExecutable;
  static Uri get script => _Platform.script;
  static List<String> get executableArguments => _Platform.executableArguments;
  static String get packageRoot => _Platform.packageRoot;
  static String get packageConfig => _Platform.packageConfig;
  static String get version => _version;
}
复制代码

能够看到方法仍是很多的 , 接下来咱们主要介绍一下使用方法以及各个属性表明的含义.macos

##使用方法windows

###1.先引入包:markdown

import 'dart:io';app

2.使用:

Platform.isAndroid Platform.operatingSystem 其余属性使用方法同上.post

###3 例如:测试

void _btnPress() {
    print(Platform.isAndroid);  // true/false
  }
复制代码

若是你的手机是安卓的,会在控制台打印true,不然打印出false.spa

##API 如下内容基于 Nexus5X API 28测试

table th:second-of-type {width: 100px;}
属性 类型 本机打印结果 描述
numberOfProcessors int 4 机器的各个执行单元的数量。
pathSeparator String / 操做系统用于分隔文件路径中的组件的路径分隔符。
localeName String en_US 获取当前区域设置的名称。
operatingSystem String android 表示操做系统或平台的字符串。
operatingSystemVersion String Linux 4.4.124+ #1 SMP PREEMPT Mon Jun 18 17:10:07 UTC 2018 表示操做系统或平台版本的字符串。
localHostname String localhost 系统的本地主机名
isLinux bool false 操做系统是否为[Linux]的版本
isMacOS bool false 操做系统是否为[macOS]的版本
isWindows bool false 操做系统是否为[Windows]的版本
isAndroid bool true 操做系统是否为[Android]的版本
isIOS bool false 操做系统是否为[IOS]的版本
isFuchsia bool false 操做系统是否为[Fuchsia]的版本
environment Map< String, String > {PATH:/sbin:/system/sbin:/system/bin:/s } ..等一系列字符串很长.. 此过程的环境为从字符串键到字符串值的映射。映射是不可修改的,其内容在首次使用时从操做系统中检索。Windows上的环境变量不区分大小写,所以在Windows上,映射不区分大小写,并将全部键转换为大写。在其余平台上,能够经过大小写区分键。
executable String /system/bin/app_process32 用于在此隔离中运行脚本的可执行文件的路径。用于标识脚本的文字路径。此路径多是相对的,或者只是经过搜索系统路径从中找到可执行文件的名称。使用[resolvedExecutable]获取可执行文件的绝对路径。
resolvedExecutable String /system/bin/app_process32 操做系统解析后,用于在此隔离中运行脚本的可执行文件的路径。这是解析全部符号连接的绝对路径,用于运行脚本的可执行文件。
script Uri file:///main.dart 在这个隔离区中运行脚本的绝对URI。若是可执行环境不支持(脚本),uri为空
executableArguments List< String > [] 在这个隔离区中运行脚本传递给可执行文件的标志。这些是在脚本名称前面的可执行文件的命令行标志。每次读取值时都会提供一个新的列表。
packageRoot String null --package-root标志传递给可执行文件,用于在该隔离区中运行脚本。若是没有--package-root标志,则为null
packageConfig String null --package标志传递给可执行文件,用于在该隔离区中运行脚本。若是没有--package标志,则为null
version String 2.0.0-dev.58.0.flutter-f981f09760 (Sat May 26 03:16:14 2018 +0000) on "android_ia32" 当前DART运行时的版本。
相关文章
相关标签/搜索