flutter如何配置网络权限
我在Flutter项目中使用网络请求时遇到了权限问题,请问该如何正确配置Android和iOS的网络权限?具体需要修改哪些配置文件,是否需要针对不同平台进行单独设置?在AndroidManifest.xml和Info.plist中应该添加哪些权限声明?另外,在Flutter 3.0之后的版本中是否有新的配置方式需要注意?
2 回复
在 android/app/src/main/AndroidManifest.xml 中添加:
<uses-permission android:name="android.permission.INTERNET" />
iOS 默认已开启网络权限。
更多关于flutter如何配置网络权限的实战系列教程也可以访问 https://www.itying.com/category-92-b0.html
在 Flutter 中配置网络权限需要在原生平台(Android 和 iOS)的配置文件中进行设置。以下是具体步骤:
Android 配置
- 打开
android/app/src/main/AndroidManifest.xml文件。 - 在
<manifest>标签内添加以下权限:
<uses-permission android:name="android.permission.INTERNET" />
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />
- 确保配置后文件包含:
<manifest xmlns:android="http://schemas.android.com/apk/res/android">
<uses-permission android:name="android.permission.INTERNET" />
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />
...
</manifest>
iOS 配置
- 打开
ios/Runner/Info.plist文件。 - 添加以下键值(通常已默认包含,如缺失则手动添加):
<key>NSAppTransportSecurity</key>
<dict>
<key>NSAllowsArbitraryLoads</key>
<true/>
</dict>
注意:iOS 默认允许 HTTP 请求,但若需访问特定域名或使用 HTTPS,可进一步配置 NSExceptionDomains。
验证配置
- 重新编译应用:
flutter run - 使用
http包测试网络请求(需在pubspec.yaml中添加依赖):
dependencies:
http: ^1.1.0
注意事项
- 仅配置权限不会触发动态权限申请(如 Android 的
ACCESS_FINE_LOCATION),网络权限属于安装时授权。 - 若使用其他网络相关功能(如蓝牙、位置),需额外配置对应权限。
完成上述步骤后,应用即可正常进行网络请求。

