import 'dart:io' show Platform;
if (Platform.isAndroid) {
// Android-specific code
} else if (Platform.isIOS) {
// iOS-specific code
}
Wszystkie opcje obejmują:
Platform.isAndroid
Platform.isFuchsia
Platform.isIOS
Platform.isLinux
Platform.isMacOS
Platform.isWindows
Możesz także wykryć, czy pracujesz w sieci, używając kIsWeb
stałej globalnej wskazującej, czy aplikacja została skompilowana do działania w sieci:
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)
Czy są jakieś wymagania do użyciaPlatform
?Dzięki Collinowi ostateczna odpowiedź brzmi:
źródło
Chociaż
defaultTargetPlatform
zadziała, sugerowałbym użycieTheme.of(context).targetPlatform
. Umożliwia to testowanie zachowania iOS (ponieważdefaultTargetPlatform
jest zawszeTargetPlatform.android
w testach). Umożliwia także przodkom widżetu zastąpienie platformy docelowej poprzez umieszczenie go wTheme
widżecie.źródło
if (Platform.isIOS) {//my iOS widgets}
Platform.isIOS
ma takie same problemy jakdefaultTargetPlatform
. Nie działa w testach i nie może zostać nadpisany przezTheme
widżet.źródło
Większość odpowiedzi „Flutter” jest następująca:
źródło
Możesz to zrobić
z
import 'package:flutter/foundation.dart';
źródło
Możesz skorzystać z pakietu Universal Platform:
https://pub.dev/packages/universal_platform
źródło
Wystarczy zaimportować bibliotekę io
lub w bardzo prosty sposób
źródło