flutter Platform介绍

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/u011272795/article/details/82468390

Platform

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

看一下构造方法:

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;
}

可以看到方法还是不少的 , 接下来我们主要介绍一下使用方法以及各个属性代表的含义.

使用方法

1.先引入包:

import ‘dart:io’;

2.使用:

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

3 例如:

  void _btnPress() {
    print(Platform.isAndroid);  // true/false
  }

如果你的手机是安卓的,会在控制台打印true,否则打印出false.

API

以下内容基于 Nexus5X API 28测试

属性 类型 本机打印结果 描述
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运行时的版本。

猜你喜欢

转载自blog.csdn.net/u011272795/article/details/82468390