Pour une interface utilisateur légèrement différente de iOS
et Android
, il doit exister un moyen de détecter celle sur laquelle vous exécutez l'application, mais je ne pouvais pas la trouver dans la documentation. Qu'Est-ce que c'est?
import 'Dart:io' show Platform;
if (Platform.isAndroid) {
// Android-specific code
} else if (Platform.isIOS) {
// iOS-specific code
}
Les autres options incluent:
Platform.isFuchsia
Platform.isLinux
Platform.isMacOS
Platform.isWindows
Docs: https://docs.flutter.io/flutter/Dart-io/Platform-class.html
Grâce à Collin, la réponse finale est:
bool isIOS = Theme.of(context).platform == TargetPlatform.iOS;
Bien que defaultTargetPlatform
fonctionne, je suggère d'utiliser Theme.of(context).targetPlatform
. Cela permet de tester le comportement iOS (car defaultTargetPlatform
est toujours TargetPlatform.Android
dans les tests). Il permet également aux ancêtres de votre widget de remplacer sa plate-forme cible en l'enveloppant dans un widget Theme
.
Tu peux faire
defaultTargetPlatform == TargetPlatform.iOS
? kIOSTheme
: kDefaultTheme,
à partir de import 'package:flutter/foundation.Dart';
import 'Dart:io' show Platform; //at the top
String os = Platform.operatingSystem; //in your code
print(os)
;
La plupart des réponses "Flutter" sont les suivantes:
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