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.
}
Undefined name 'Platform'.dart(undefined_identifier)
Есть ли какие-то необходимые реквизитыPlatform
?Благодаря Коллину окончательный ответ таков:
источник
Хотя
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';
источник
Просто импортируйте библиотеку io
или очень просто
источник
Вы можете использовать пакет Universal Platform:
https://pub.dev/packages/universal_platform
источник