如何知道我的Flutter Web应用程序是在移动设备还是台式机上运行

时间:2020-10-12 13:42:16

标签: flutter dart flutter-web

我怎么知道我的Web Flutter应用程序是在台式机还是在移动设备上运行? 我不能使用kIsWeb,因为它会说该应用程序是为网络构建的,而不是它是否在网络上运行。 谢谢。

2 个答案:

答案 0 :(得分:1)

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

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

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

要使用defaultTargetPlatform,您需要导入import 'package:flutter/foundation.dart';

示例:

import 'package:flutter/foundation.dart';
final isWebMobile = kIsWeb && (defaultTargetPlatform == TargetPlatform.iOS || defaultTargetPlatform == TargetPlatform.android)

答案 1 :(得分:0)

也许您可以根据屏幕尺寸进行选择。

var screenSize = MediaQuery.of(context).size;
final double width = screenSize.width;
final double height = screenSize.height - kToolbarHeight;

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