जवाबों:
import 'dart:io' show Platform;
if (Platform.isAndroid) {
// Android-specific code
} else if (Platform.isIOS) {
// iOS-specific code
}
सभी विकल्पों में शामिल हैं:
Platform.isAndroid
Platform.isFuchsia
Platform.isIOS
Platform.isLinux
Platform.isMacOS
Platform.isWindows
आप यह भी पता लगा सकते हैं कि यदि आप वेब का उपयोग कर रहे हैं kIsWeb
, तो एक वैश्विक स्थिरांक बताता है कि क्या अनुप्रयोग वेब पर चलाने के लिए संकलित किया गया था:
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.
}
Platform
प्रलेखन: https://docs.flutter.io/flutter/dart-io/Platform-class.htmlkIsWeb
प्रलेखन: https://api.flutter.dev/flutter/foundation/kIsWeb-constant.htmlकॉलिन के लिए धन्यवाद, अंतिम उत्तर है:
bool isIOS = Theme.of(context).platform == TargetPlatform.iOS;
यद्यपि defaultTargetPlatform
काम करेगा, मैं उपयोग करने का सुझाव दूंगा Theme.of(context).targetPlatform
। यह iOS व्यवहार के परीक्षण को सक्षम बनाता है (क्योंकि defaultTargetPlatform
हमेशा TargetPlatform.android
परीक्षणों में होता है)। यह आपके विजेट के पूर्वजों को विजेट में लपेटकर अपने लक्ष्य प्लेटफ़ॉर्म को ओवरराइड करने की भी अनुमति देता है Theme
।
if (Platform.isIOS) {//my iOS widgets}
Platform.isIOS
जैसी समस्याएं हैं defaultTargetPlatform
। यह परीक्षणों में काम नहीं करता है और Theme
विजेट द्वारा अधिलेखित नहीं किया जा सकता है ।
अधिकांश "स्पंदन" उत्तर इस प्रकार है:
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
आप यूनिवर्सल प्लेटफ़ॉर्म पैकेज का उपयोग कर सकते हैं:
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');
यह सिर्फ 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();
}
या बहुत ही सरल तरीके से
Platform.isIOS ? someThing() : anOther(),
Undefined name 'Platform'.dart(undefined_identifier)
क्या उपयोग करने के लिए कोई प्रति-आवश्यकता हैPlatform
?