如何检测Flutter应用程序是否正在网络上运行?

ni.*_*ni. 3 dart flutter

我知道我可以使用Platform.isAndroidPlatform.isIOS等等来检测操作系统,但是没有类似的东西Platform.isWeb,该如何检测呢?

小智 30

如果你想知道你的操作系统在网络上是什么,你可以使用

    String platform = "";
    if (kIsWeb) {
      platform = getOSInsideWeb();
    }

    String getOSInsideWeb() {
      final userAgent = window.navigator.userAgent.toString().toLowerCase();
      if( userAgent.contains("iphone"))  return "ios";
      if( userAgent.contains("ipad")) return "ios";
      if( userAgent.contains("android"))  return "Android";
    return "Web";
   }
Run Code Online (Sandbox Code Playgroud)


Dev*_*ven 12

下面写了一段代码来获取运行 flutter 的 OS/web...

if(kIsWeb)
   return Text("It's web");

else if(Platform.isAndroid){
     return Text("it's Android"); }
Run Code Online (Sandbox Code Playgroud)


mNo*_*ouh 10

你可以使用“kIsWeb”来完成这项工作

 if(kIsWeb){
// DO SOMETHING
}else{
// DO ANOTHER THING
}
Run Code Online (Sandbox Code Playgroud)


Wes*_*y92 7

有一个全局布尔值kIsWeb,可以告诉您该应用程序是否已编译为可在网络上运行。

文档:https : //api.flutter.dev/flutter/foundation/kIsWeb-constant.html

if (kIsWeb) {
  // running on the web!
}
Run Code Online (Sandbox Code Playgroud)

  • 如果一个应用程序被编译为在网络上运行,现在我在 android/ios 上运行一个应用程序,那么这段代码是否可以执行? (2认同)
  • 不要忘记导入它... import 'package:flutter/foundation.dart'; (2认同)
  • 非常讽刺的是,我们已经有了“isFuchsia”和“isLinux”,但我仍然必须来这里检查如何检测网络。 (2认同)