在Flutter应用中添加网络支持是一个非常常见的需求。
这主要是按照以下步骤进行。
但是,如果你在macOS上运行该应用程序,你会被这个可怕的错误所欢迎。
SocketException错误已经来拜访你了
这就是它,以更可读的格式。
所以,让我们弄清楚为什么会发生这种情况,以及如何修复它。👇
注意:如果你要给一个旧的Flutter应用添加macOS支持,你可能需要运行
flutter create --platforms macos .
,把macOS添加为构建目标。我在macOS上运行我的大部分应用程序,所以在构建响应式UI时,我可以轻松地调整窗口的大小。
macOS上的客户端联网权限
macOS应用程序默认为沙盒,如果你没有添加所需的权限,就会发生SocketException
的错误。
要解决这个问题,请打开名为macos/Runner/DebugProfile.entitlements
的文件并添加以下内容。
然后,打开macos/Runner/Release.entitlements
,做同样的事情。
那么iOS呢?
在iOS上,只要你连接到一个安全的https
终端,该应用就可以正常运行(不需要额外的配置)。
但请记住,在某些情况下,你可能需要定制应用程序的传输安全设置,如这里所解释的。
安卓的情况如何?
在安卓系统中,曾经需要在AndroidManifest.xml
文件中添加INTERNET权限。
但根据这个答案,现在已经不需要了,因为大多数应用程序都需要互联网访问。