首页 > 解决方案 > Flutter 连接:在 Android 上工作,但在 iOS 模拟器上,当我可以在 Safari 中打开网页时,我有互联网,但应用程序说没有互联网?

问题描述

我使用这个包:https ://pub.dev/packages/connectivity_plus

我有一个在 Android 上运行的已完成应用程序,但是当我在 iOS 上对其进行测试时,它显示没有互联网。我可以在 Safari 中使用和打开页面,所以肯定有一个。但以下代码在 iOS 中返回 false:

class InternetConnectivity with ChangeNotifier {
  StreamSubscription<ConnectivityResult>? _subscription;
  bool haveInternet = false;

  void checkConnectivity() {
    if (_subscription == null) {
      _subscription = Connectivity().onConnectivityChanged.listen((ConnectivityResult result) {
        bool res = result == ConnectivityResult.mobile || result == ConnectivityResult.wifi;
        setHaveInternet = res;
      });
    }
  }

  set setHaveInternet(bool value) {
    if (haveInternet != value) {
      haveInternet = value;
      notifyListeners();
    }
  }
}

我没有收到任何错误,所以我真的不知道在哪里寻找问题。

在它检查互联网连接是否以此开头的屏幕上:

bool _haveInternet = true;

然后在initState()我设置它的值:

  @override
  void initState() {
    super.initState();
    
    InternetConnectivity ? _internetConnectivity = InternetConnectivity();

    setState(() {
      _haveInternet = _internetConnectivity!.haveInternet;
    });

initState()跑完之后,变成了_haveInternet假,所以connectivity_plus包返回假,而通常它应该是真的。

提前致谢。

标签: iosflutter

解决方案


推荐阅读