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.
}
Undefined name 'Platform'.dart(undefined_identifier)
Y a-t-il des conditions préalables à utiliserPlatform
?Merci à Collin, la réponse finale est:
la source
Bien que
defaultTargetPlatform
cela fonctionnera, je suggérerais d'utiliserTheme.of(context).targetPlatform
. Cela permet de tester le comportement iOS (car ildefaultTargetPlatform
est toujoursTargetPlatform.android
en test). Il permet également aux ancêtres de votre widget de remplacer sa plate-forme cible en l'enveloppant dans unTheme
widget.la source
if (Platform.isIOS) {//my iOS widgets}
Platform.isIOS
a les mêmes problèmes quedefaultTargetPlatform
. Cela ne fonctionne pas dans les tests et ne peut pas être écrasé par leTheme
widget.la source
La plupart des réponses "Flutter" sont les suivantes:
la source
Tu peux faire
de
import 'package:flutter/foundation.dart';
la source
Vous pouvez utiliser le package Universal Platform:
https://pub.dev/packages/universal_platform
la source
C'est simple, il suffit d'importer la bibliothèque io
ou de manière très simple
la source