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運行時的版本。
相關文章
相關標籤/搜索