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

5
如何知道我的 Web Flutter 应用是在桌面上运行还是在移动设备上运行? 我不能使用 kIsWeb,因为它只能告诉应用是否为 Web 版本,而不能判断应用是否在 Web 上运行。 谢谢。
2个回答

13
为了检测Flutter Web是否在移动设备(仅限iOS或Android)上运行,您可以分两步进行检测:
  • 使用kIsWeb来检测您是否处于web环境中。
  • 使用defaultTargetPlatform获取默认平台(它将提供给您操作系统)*

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

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

import 'package:flutter/foundation.dart';

示例:

import 'package:flutter/foundation.dart';

final isWebMobile = kIsWeb &&
    (defaultTargetPlatform == TargetPlatform.iOS ||
        defaultTargetPlatform == TargetPlatform.android);

-4
也许你可以根据屏幕尺寸做出决策。
var screenSize = MediaQuery.of(context).size;
final double width = screenSize.width;
final double height = screenSize.height - kToolbarHeight;

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

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接