flutter项目怎么判断是不是web平台?Unsupported operation: Platform._operatingSystem

如果你使用Platform 这个工具来判断的时候,很有可能会报错:

======== Exception caught by widgets library =======================================================

The following UnsupportedError was thrown building MyApp(dirty):

Unsupported operation: Platform._operatingSystem

The relevant error-causing widget was:

Platform判断的时候只能判断除了web平台的判断:

复制代码
Flutter 的 Platform 类提供了一些属性和方法,用于获取关于当前平台的信息。以下是一些常用的 Platform 属性和方法:

Platform.isAndroid:一个布尔值,用于检查当前平台是否为 Android。

Platform.isIOS:一个布尔值,用于检查当前平台是否为 iOS。

Platform.isFuchsia:一个布尔值,用于检查当前平台是否为 Fuchsia。

Platform.isLinux:一个布尔值,用于检查当前平台是否为 Linux。

Platform.isMacOS:一个布尔值,用于检查当前平台是否为 macOS。

Platform.isWindows:一个布尔值,用于检查当前平台是否为 Windows。

只能使用这种方式判断web平台:如果是web平台返回true,不是返回false

复制代码
identical(0, 0.0)

所以如果你想判断是不是web平台,然后修改字体可以这样:

复制代码
          // 解决桌面端字体粗细不一致和繁体的情况
          fontFamily: identical(0, 0.0) ? null : "微软雅黑",

因为只有web平台下js判断0和0.0才判断为相等,其他语言都是false。

至于js为啥会将0和0.0判断为相等,是因为js使用弱类型判断的时候,会对右边的类型转成左边的类型,然后再进行判断,转换后的0.0其实就是0,所以才相等。

js问题

js中 0=='0'、0==[] 为 true ,为什么 '0'==[] 为false

分析

== 是弱类型比较

当两者类型不同时会发生类型转换

0 == "0":先把"0"转为number类型再比较;

0 == []:有对象的话,先获取对象的原始值,如果原始值为number类型,直接与0比较;如果原始值为字符串类型,先转为number类型再比较;(在这里[]的原始值为"",符合第二种情况)

"0" == []:首先获取[]的原始值,即空字符串"",然后进行两个字符串"0"与""之间的比较。字符串之间的比较遵循的是逐个字符使用基于标准字典的 Unicode 值来进行比较的规则,所以这俩字符串不同。

前两者等式成立都是因为发生了一次类型转换,而后者如果要成立,就要发生两次类型转换,这应该是非法的。真正成立的等式是''==[],只发生一次类型转换其实你拿str="0",然后取str[0]就知道这个其实是有值的,这显然不符合空数组的定义。

相关推荐
程序员老刘·1 天前
Android Studio Otter 3 发布:日常开发选AS还是Cursor?
flutter·android studio·ai编程·跨平台开发·客户端开发
浩辉_1 天前
Dart - 内存管理与垃圾回收(GC)深度解析
flutter·dart
一起养小猫1 天前
Flutter for OpenHarmony 实战:记忆棋游戏完整开发指南
flutter·游戏·harmonyos
Betelgeuse761 天前
【Flutter For OpenHarmony】TechHub技术资讯界面开发
flutter·ui·华为·交互·harmonyos
铅笔侠_小龙虾1 天前
Flutter 安装&配置
flutter
mocoding1 天前
使用已经完成鸿蒙化适配的Flutter本地持久化存储三方库shared_preferences让你的应用能够保存用户偏好设置、缓存数据等
flutter·华为·harmonyos·鸿蒙
无熵~1 天前
Flutter入门
flutter
hudawei9961 天前
要控制动画的widget为什么要with SingleTickerProviderStateMixin
flutter·mixin·with·ticker·动画控制
jian110581 天前
flutter dio 依赖,dependencies 和 dev_dependencies的区别
flutter
王码码20351 天前
Flutter for OpenHarmony 实战之基础组件:第十七篇 滚动进阶 ScrollController 与 Scrollbar
flutter·harmonyos