Jawaban:
import 'dart:io' show Platform;
if (Platform.isAndroid) {
// Android-specific code
} else if (Platform.isIOS) {
// iOS-specific code
}
Semua opsi termasuk:
Platform.isAndroid
Platform.isFuchsia
Platform.isIOS
Platform.isLinux
Platform.isMacOS
Platform.isWindows
Anda juga dapat mendeteksi jika Anda menjalankan di web menggunakan kIsWeb, konstanta global yang menunjukkan apakah aplikasi telah dikompilasi untuk dijalankan di 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.
}
Platformdokumentasi: https://docs.flutter.io/flutter/dart-io/Platform-class.htmlkIsWebdokumentasi: https://api.flutter.dev/flutter/foundation/kIsWeb-constant.htmlBerkat Collin, jawaban akhirnya adalah:
bool isIOS = Theme.of(context).platform == TargetPlatform.iOS;
Meskipun defaultTargetPlatformakan berhasil, saya sarankan menggunakan Theme.of(context).targetPlatform. Ini memungkinkan pengujian perilaku iOS (karena defaultTargetPlatformselalu TargetPlatform.androiddalam pengujian). Ini juga memungkinkan leluhur widget Anda untuk mengganti platform targetnya dengan menggabungkannya dalam sebuah Themewidget.
if (Platform.isIOS) {//my iOS widgets}
Platform.isIOSmemiliki masalah yang sama seperti defaultTargetPlatform. Ini tidak berfungsi dalam pengujian dan tidak dapat ditimpa oleh Themewidget.
Kebanyakan jawaban "Flutter" adalah sebagai berikut:
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
Anda dapat melakukan
defaultTargetPlatform == TargetPlatform.iOS
? kIOSTheme
: kDefaultTheme,
dari import 'package:flutter/foundation.dart';
Anda dapat menggunakan paket Platform Universal:
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');
Sederhana, cukup impor pustaka 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();
}
atau dengan cara yang sangat sederhana
Platform.isIOS ? someThing() : anOther(),
Undefined name 'Platform'.dart(undefined_identifier)Apakah ada persyaratan untuk digunakanPlatform?