如何知道我的 flutter web 应用程序是在移动设备还是桌面设备上运行

dud*_*duf 5 dart flutter flutter-web

我如何知道我的 Web Flutter 应用程序是在桌面上还是在移动设备上运行?我无法使用 kIsWeb,因为它表示应用程序是否是为网络构建的,而不是它是否在网络上运行。谢谢。

osa*_*xma 14

为了检测 Flutter Web 是否正在移动设备(仅限 iOS 或 Android)上运行,您可以分两步进行检测:

  • 用于kIsWeb检测您是否正在上网
  • 用于defaultTargetPlatform获取默认平台(它将为您提供操作系统)*

defaultTargetPlatform这是我刚刚从 iOS 上的 Safari调用的测试:

要使用defaultTargetPlatform,您需要导入以下内容:

import 'package:flutter/foundation.dart';
Run Code Online (Sandbox Code Playgroud)

例子:

import 'package:flutter/foundation.dart';
Run Code Online (Sandbox Code Playgroud)


Set*_*ere -4

也许您可以根据屏幕尺寸做出决定。

var screenSize = MediaQuery.of(context).size;
final double width = screenSize.width;
final double height = screenSize.height - kToolbarHeight;
Run Code Online (Sandbox Code Playgroud)

如果高度或宽度低于定义的值,您可以估计该应用程序是在移动设备上执行的。