我对 iOS 设备上的 dio 包有一个奇怪的问题。
我写了一个应用程序,它向一个 url 发送一个 GET 请求。一切都在 Android 上完美运行,但看起来该请求在 iOS 上无法通过。
什么都没有发生 没有错误 什么都没有。我在 android 上也有同样的问题,但我发现我忘记在 list 文件中添加 INTERNET 权限。我猜在 iOS 中也会发生同样的情况。
iOS 中是否有任何 INTERNET 权限需要添加 info.plist ?
void _checkVersionAndPreferences() async {
SharedPreferences prefs = await SharedPreferences.getInstance();
String prefsRes = prefs.getString('access_token') ?? '';
String buildNumber = _packageInfo.buildNumber ?? '1';
Dio dio = Dio();
_cancelToken = CancelToken();
Future.delayed(Duration(seconds: 10), () {
if (_getRequestSuccess == false) {
_cancelToken.cancel();
_checkVersionAndPreferences();
_showSnackBar(
content: 'تلاش مجدد برای برقراری ارتباط',
duration: Duration(seconds: 3),
leading: Icon(Icons.refresh, color: Colors.black));
}
});
Response response = await dio.get(
'https://snapmelk.com/api/v1/panel/checkVersion/' + buildNumber,
cancelToken: _cancelToken);
try {
Map respJson = jsonDecode(response.data);
setState(() {
_getRequestSuccess = true;
});
if (respJson['error']) {
_showSnackBar(
content:
(respJson['errorMsg'] != null && respJson['errorMsg'] != '')
? respJson['errorMsg']
: 'خطا در اتصال دریافت اطلاعات آخرین نسخه',
leading: Icon(Icons.warning),
backgroundColor: Colors.red,
textColor: Colors.white);
} else {
if (respJson['NewUpdate']) {
_checkDialogAnswer(respJson, prefsRes);
} else {
_checkPrefs(prefsRes);
}
}
} catch (e) {
_showSnackBar(
content: 'خطا در اتصال با سرور. لطفا در زمانی دیگر مراجعه کنید',
leading: Icon(Icons.warning),
backgroundColor: Colors.red,
textColor: Colors.white);
}
}
最佳答案
好吧,在我 friend 的帮助下,我发现它与互联网请求无关。
显然是连接和 包装信息 插件在 iOS 上不起作用并返回 NULL。
多么可惜,我失去了希望而 flutter
关于ios - iOS 中是否有 INTERNET 权限?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/61430142/