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 配置

  1. 打开 android/app/src/main/AndroidManifest.xml 文件。
  2. <manifest> 标签内添加以下权限:
<uses-permission android:name="android.permission.INTERNET" />
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />
  1. 确保配置后文件包含:
<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 配置

  1. 打开 ios/Runner/Info.plist 文件。
  2. 添加以下键值(通常已默认包含,如缺失则手动添加):
<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),网络权限属于安装时授权。
  • 若使用其他网络相关功能(如蓝牙、位置),需额外配置对应权限。

完成上述步骤后,应用即可正常进行网络请求。

回到顶部