我怎么知道我的Web Flutter应用程序是在台式机还是在移动设备上运行? 我不能使用kIsWeb,因为它会说该应用程序是为网络构建的,而不是它是否在网络上运行。 谢谢。
答案 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)
defaultTargetPlatform
已经可以识别网络并为您执行导航器恶作剧。您可以在此处查看实现:https://github.com/flutter/flutter/blob/master/packages/flutter/lib/src/foundation/_platform_web.dart答案 1 :(得分:0)
也许您可以根据屏幕尺寸进行选择。
var screenSize = MediaQuery.of(context).size;
final double width = screenSize.width;
final double height = screenSize.height - kToolbarHeight;
如果高度或宽度低于定义的值,则可以估计该应用程序是在移动设备上执行的。