我有一个Flutter应用程序,它在WiFi上工作正常,但当我切换到移动的数据时,它就不工作了。我已经检查过了,我有互联网连接,因为我的其他网站和应用程序都在工作。
在Android方面,我的清单中有:
<uses-permission android:name="android.permission.INTERNET"/>
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />
然后在应用程序标记内:
<meta-data android:name="io.flutter.network-policy"
android:resource="@xml/network_security_config"/>
然后,在network_security_config. xml文件中,我有:
<?xml version="1.0" encoding="utf-8"?>
<network-security-config>
<domain-config cleartextTrafficPermitted="true">
<domain includeSubdomains="true">www.mydomain.com</domain>
</domain-config>
</network-security-config>
我正在使用一个包nb_utils,在引擎盖下它使用connectivity_plus来检查互联网连接,并检查我有:
ConnectivityResult connectivityResult = await (Connectivity().checkConnectivity());
if (connectivityResult == ConnectivityResult.mobile) {
print('I have Data access');
return true;
} else if (connectivityResult == ConnectivityResult.wifi) {
print('I have WIFI access');
return true;
}
print('I have NO access');
return false;
当我连接到移动的数据时,我会在控制台中打印“我有数据访问权限”。
一开始我在我的URI上使用http://shop.mydomain.com,但后来我不得不在我的域上应用SSL证书,看看它是否工作,但使用https://shop.mydomain.com仍然得到同样的结果。我在我的控制台上也没有得到任何错误。我还没有在iOS上尝试过这个,我只添加了:
<key>NSAppTransportSecurity</key>
<dict>
<key>NSAllowsArbitraryLoads</key><true/>
</dict>
在信息列表中。
2条答案
按热度按时间6ju8rftf1#
我也有同样的问题。
当移动的数据打开时,我试图使用浏览器和 Postman 访问端点,但我无法访问。然后我意识到问题与flutter或我的代码无关。
在进一步研究之前,我建议在只有移动的数据处于活动状态时,尝试在不使用Flutter应用程序的情况下发送请求。
P.S. * 移动的数据=Hive数据 *
jhdbpxl92#
如果有人遇到此问题,请单击此处:我的问题是,我是在调试中构建的,如果你在发布模式中构建,我的问题就解决了。反之亦然,我不记得在两个发布模式之间哪一个工作,另一个不工作。