34 lines
1.1 KiB
Dart
34 lines
1.1 KiB
Dart
|
|
// lib/utils/platform_utils.dart
|
|||
|
|
import 'package:flutter/foundation.dart' show kIsWeb, defaultTargetPlatform, TargetPlatform;
|
|||
|
|
|
|||
|
|
/// 简单的跨平台判断工具,避免在 web 上引用 dart:io
|
|||
|
|
class PlatformUtils {
|
|||
|
|
/// 是否在浏览器
|
|||
|
|
static bool get isWeb => kIsWeb;
|
|||
|
|
|
|||
|
|
/// 是否为 iOS(注意:在 web 上会返回 false)
|
|||
|
|
static bool get isIOS => !kIsWeb && defaultTargetPlatform == TargetPlatform.iOS;
|
|||
|
|
|
|||
|
|
/// 是否为 Android(在 web 上会返回 false)
|
|||
|
|
static bool get isAndroid => !kIsWeb && defaultTargetPlatform == TargetPlatform.android;
|
|||
|
|
|
|||
|
|
/// 返回一个简单的操作系统标识字符串(web 会返回 'web')
|
|||
|
|
static String get operatingSystem {
|
|||
|
|
if (kIsWeb) return 'web';
|
|||
|
|
switch (defaultTargetPlatform) {
|
|||
|
|
case TargetPlatform.android:
|
|||
|
|
return 'android';
|
|||
|
|
case TargetPlatform.iOS:
|
|||
|
|
return 'ios';
|
|||
|
|
case TargetPlatform.macOS:
|
|||
|
|
return 'macos';
|
|||
|
|
case TargetPlatform.linux:
|
|||
|
|
return 'linux';
|
|||
|
|
case TargetPlatform.windows:
|
|||
|
|
return 'windows';
|
|||
|
|
case TargetPlatform.fuchsia:
|
|||
|
|
return 'fuchsia';
|
|||
|
|
}
|
|||
|
|
}
|
|||
|
|
}
|