Réponses:
import 'dart:io' show Platform;
if (Platform.isAndroid) {
// Android-specific code
} else if (Platform.isIOS) {
// iOS-specific code
}
Toutes les options comprennent:
Platform.isAndroid
Platform.isFuchsia
Platform.isIOS
Platform.isLinux
Platform.isMacOS
Platform.isWindows
Vous pouvez également détecter si vous exécutez sur le Web en utilisant kIsWeb, une constante globale indiquant si l'application a été compilée pour s'exécuter sur le Web:
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.
}
Platformdocumentation: https://docs.flutter.io/flutter/dart-io/Platform-class.htmlkIsWebdocumentation: https://api.flutter.dev/flutter/foundation/kIsWeb-constant.htmlMerci à Collin, la réponse finale est:
bool isIOS = Theme.of(context).platform == TargetPlatform.iOS;
Bien que defaultTargetPlatformcela fonctionnera, je suggérerais d'utiliser Theme.of(context).targetPlatform. Cela permet de tester le comportement iOS (car il defaultTargetPlatformest toujours TargetPlatform.androiden test). Il permet également aux ancêtres de votre widget de remplacer sa plate-forme cible en l'enveloppant dans un Themewidget.
if (Platform.isIOS) {//my iOS widgets}
Platform.isIOSa les mêmes problèmes que defaultTargetPlatform. Cela ne fonctionne pas dans les tests et ne peut pas être écrasé par le Themewidget.
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
Tu peux faire
defaultTargetPlatform == TargetPlatform.iOS
? kIOSTheme
: kDefaultTheme,
de import 'package:flutter/foundation.dart';
Vous pouvez utiliser le package Universal Platform:
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');
C'est simple, il suffit d'importer la bibliothèque io
import'dart:io' show Platform;
void main(){
if(Platform.isIOS){
return someThing();
}else if(Platform.isAndroid){
return otherThing();
}else if(Platform.isMacOS){
return anotherThing();
}
ou de manière très simple
Platform.isIOS ? someThing() : anOther(),
Undefined name 'Platform'.dart(undefined_identifier)Y a-t-il des conditions préalables à utiliserPlatform?