错误状态:平台不允许不安全的 HTTP:http://0.0.0.0:9090

Bad state: Insecure HTTP is not allowed by platform: http://0.0.0.0:9090

我正在尝试从我的 flutter 应用程序连接到位于 ws://local host:9090(使用 rosbridge 运行)的 Ros WebSocket 服务,但我在 Flutter 中收到以下错误:

Bad state: Insecure HTTP is not allowed by platform: http://local host:9090

打开 android/app/src/main 文件夹中的 AndroidManifest.xml 文件。

然后将 usesCleartextTraffic 设置为 true

<application
    ...
    android:usesCleartextTraffic="true"
    ...   >

确保权限并将android:usesCleartextTraffic设置为true

<uses-permission android:name="android.permission.INTERNET" />
        <application
                android:name="io.flutter.app.FlutterApplication"
                android:label="receipt"
                android:usesCleartextTraffic="true"
                android:icon="@mipmap/ic_launcher">
  1. 作为 ,您必须向您的清单文件添加互联网权限:

<uses-permission android:name="android.permission.INTERNET" />

  1. 请将 android:usesCleartextTraffic="true" 添加到 yourapp\android\app\src\debug\AndroidManifest.xml.yourapp\android\app\src\main\AndroidManifest.xml. 中的两个 AndroidManifest.xml 文件,如下所示:

    <application
     ...
     android:usesCleartextTraffic="true"
     ...   >
    
  2. 最后一件事是确保您的 windows 防火墙已关闭。

这是关于这个问题的 Flutter 文档:

https://docs.flutter.dev/release/breaking-changes/network-policy-ios-android