Flutter iOS首次安装如何授权网络

在Flutter开发的iOS应用中,首次安装时如何请求网络访问权限?我已经在Info.plist中添加了NSAllowsArbitraryLoads和NSAppTransportSecurity配置,但应用安装后仍然没有弹出网络授权提示。是否需要额外设置ATS或调用特定API?正确的配置流程是怎样的?

2 回复

在iOS首次安装Flutter应用时,需在Info.plist中添加网络权限请求。例如:

<key>NSAppTransportSecurity</key>
<dict>
    <key>NSAllowsArbitraryLoads</key>
    <true/>
</dict>

首次启动时系统会自动提示用户授权网络访问。

更多关于Flutter iOS首次安装如何授权网络的实战系列教程也可以访问 https://www.itying.com/category-92-b0.html


在 Flutter iOS 应用中,首次安装时默认允许网络访问,无需额外授权。但如果你的应用需要特殊网络权限(如 Wi-Fi 信息、本地网络设备访问),则需手动配置:

1. 基础网络权限(默认允许)

iOS 默认允许应用访问互联网,无需额外配置。

2. 特殊网络权限配置

如需访问本地网络设备或 Wi-Fi 信息,需在 ios/Runner/Info.plist 中添加权限描述:

<key>NSLocalNetworkUsageDescription</key>
<string>应用需要访问本地网络以发现设备</string>
<key>NSBonjourServices</key>
<array>
    <string>_yourservice._tcp</string>
</array>

3. 配置步骤

  1. 打开 ios/Runner/Info.plist
  2. 添加上述键值对(按需修改描述文字)
  3. 重新安装应用(iOS 首次使用相关功能时会弹出授权提示)

4. 注意事项

  • 仅基础网络访问:无需任何配置
  • 访问本地网络设备:必须添加 NSLocalNetworkUsageDescription
  • 使用特定 Bonjour 服务:需声明 NSBonjourServices
  • 热重载不会触发权限弹窗,需完整重新安装应用

5. 网络请求代码示例

使用 http 包进行网络请求:

import 'package:http/http.dart' as http;

void fetchData() async {
  var response = await http.get(Uri.parse('https://api.example.com/data'));
  if (response.statusCode == 200) {
    print('数据获取成功');
  }
}

无需额外权限代码,系统会自动处理网络授权。

回到顶部