Antworten:
import 'dart:io' show Platform;
if (Platform.isAndroid) {
// Android-specific code
} else if (Platform.isIOS) {
// iOS-specific code
}
Alle Optionen umfassen:
Platform.isAndroid
Platform.isFuchsia
Platform.isIOS
Platform.isLinux
Platform.isMacOS
Platform.isWindows
Sie können auch feststellen, ob Sie im Web ausgeführt werden kIsWeb, indem Sie eine globale Konstante verwenden, die angibt, ob die Anwendung für die Ausführung im Web kompiliert wurde:
import 'package:flutter/foundation.dart' show kIsWeb;
if (kIsWeb) {
// running on the web!
} else {
// NOT running on the web! You can check for additional platforms here.
}
PlatformDokumentation: https://docs.flutter.io/flutter/dart-io/Platform-class.htmlkIsWebDokumentation: https://api.flutter.dev/flutter/foundation/kIsWeb-constant.htmlDank Collin lautet die endgültige Antwort:
bool isIOS = Theme.of(context).platform == TargetPlatform.iOS;
Obwohl defaultTargetPlatformes funktionieren wird, würde ich vorschlagen, es zu verwenden Theme.of(context).targetPlatform. Dies ermöglicht das Testen des iOS-Verhaltens (da defaultTargetPlatformes sich immer TargetPlatform.androidum Tests handelt). Außerdem können Vorfahren Ihres Widgets die Zielplattform überschreiben, indem sie es in ein ThemeWidget einschließen.
if (Platform.isIOS) {//my iOS widgets}
Platform.isIOShat die gleichen Probleme wie defaultTargetPlatform. Es funktioniert nicht in Tests und kann vom ThemeWidget nicht überschrieben werden .
Die meisten "Flattern" -Antworten lauten wie folgt:
import 'package:flutter/foundation.dart' show TargetPlatform;
//...
if(Theme.of(context).platform == TargetPlatform.android)
//do sth for Android
else if(Theme.of(context).platform == TargetPlatform.iOS)
//do sth else for iOS
else if(Theme.of(context).platform == TargetPlatform.fuchsia)
//even do sth else for Fuchsia OS
Du kannst tun
defaultTargetPlatform == TargetPlatform.iOS
? kIOSTheme
: kDefaultTheme,
von import 'package:flutter/foundation.dart';
Sie können das Universal Platform-Paket verwenden:
https://pub.dev/packages/universal_platform
import 'package:universal_platform/universal_platform.dart';
bool isIos = UniversalPlatform.isIOS;
bool isAndroid = UniversalPlatform.isAndroid;
bool isWeb = UniversalPlatform.isWeb;
print('iOS: $isIos');
print('Android: $isAndroid');
print('Web: $isWeb');
Es ist einfach, einfach die io-Bibliothek zu importieren
import'dart:io' show Platform;
void main(){
if(Platform.isIOS){
return someThing();
}else if(Platform.isAndroid){
return otherThing();
}else if(Platform.isMacOS){
return anotherThing();
}
oder auf sehr einfache Weise
Platform.isIOS ? someThing() : anOther(),
Undefined name 'Platform'.dart(undefined_identifier)Gibt es irgendwelche Voraussetzungen, um zu verwendenPlatform?