Ce face Platform
Platform din dart:io are doar membri statici: nu creezi obiecte, scrii direct Platform.operatingSystem. Valorile descriu calculatorul pe care rulează programul, deci diferă de la un utilizator la altul.
Platform.operatingSystem returnează numele sistemului cu litere mici: "linux", "macos", "windows", "android", "ios" sau "fuchsia". Getter-ele isLinux, isMacOS, isWindows (și isAndroid, isIOS, isFuchsia) sunt mai comode în if; exact unul dintre ele este true.
Alți membri: environment, numberOfProcessors, pathSeparator, script, version, localHostname, operatingSystemVersion, localeName. Platform nu există pe web; acolo folosește kIsWeb din Flutter.
Exemple
Exemplul 1: Exact un sistem de operare
import 'dart:io';
void main() {
final sisteme = {
'linux': Platform.isLinux,
'macos': Platform.isMacOS,
'windows': Platform.isWindows,
'android': Platform.isAndroid,
'ios': Platform.isIOS,
'fuchsia': Platform.isFuchsia,
};
final adevarate = sisteme.entries.where((e) => e.value).map((e) => e.key);
print('Câte sunt true: ${adevarate.length}');
print('Se potrivește cu operatingSystem: ${adevarate.single == Platform.operatingSystem}');
}
Rezultat
Câte sunt true: 1
Se potrivește cu operatingSystem: true
Exemplul 2: Comportament diferit pe fiecare sistem
import 'dart:io';
String comandaListare() {
if (Platform.isWindows) return 'dir';
if (Platform.isMacOS || Platform.isLinux) return 'ls -l';
return 'necunoscută';
}
void main() {
print('Sistem: ${Platform.operatingSystem}');
print('Comanda de listare: ${comandaListare()}');
}
Rezultat pe macOS
Sistem: macos
Comanda de listare: ls -l
Exemplul 3: Mai multe detalii despre calculator
import 'dart:io';
void main() {
print(Platform.operatingSystem);
print(Platform.operatingSystemVersion);
print(Platform.localeName);
}
Rezultat posibil pe Linux
linux
Linux 6.8.0-45-generic #45-Ubuntu SMP PREEMPT_DYNAMIC
ro_RO.UTF-8
Greșeli frecvente
- Compari cu
'macOS'sau'Windows':operatingSystemfolosește doar litere mici ('macos','windows'). Mai sigur, foloseștePlatform.isMacOS. - Importi
dart:ioîntr-o aplicație Flutter web ca să verifici platforma: pe webPlatformnu există și aplicația nu pornește.
Comenzi înrudite
Platform.environment: Platform.environment este un Map, doar pentru citire, cu variabilele de mediu ale procesului (PATH, HOME, chei de configurare).Platform.pathSeparator: Separatorul folosit în căile de fișiere: „/” pe macOS și Linux, „\” pe Windows.Platform.version: Textul cu versiunea Dart care rulează programul, de forma „3.13.5 (stable) (data) on „macos_arm64″”.Platform.numberOfProcessors: Returnează numărul de procesoare (nuclee) logice ale calculatorului, util pentru a împărți munca pe mai multe isolate.