我有一个 flutter 应用程序,可以在 WiFi 下正常工作,但当我切换到移动数据时,它无法工作。我已检查并且有互联网连接,因为我的其他网站和应用程序正在运行。
在 Android 方面,我的清单中有:
<uses-permission android:name="android.permission.INTERNET"/>
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />
Run Code Online (Sandbox Code Playgroud)
然后在应用程序标签内:
<meta-data android:name="io.flutter.network-policy"
android:resource="@xml/network_security_config"/>
Run Code Online (Sandbox Code Playgroud)
然后在 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>
Run Code Online (Sandbox Code Playgroud)
我正在使用 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;
Run Code Online (Sandbox Code Playgroud)
当我连接到移动数据时,我在控制台中打印出“我有数据访问权限”。
起初,我在 URI 上使用http://shop.mydomain.com,但后来我必须在我的域上应用 SSL 证书以查看其是否正常工作,但使用https://shop.mydomain.com仍然得到相同的结果。我的控制台中也没有收到任何错误。我还没有在 iOS 上尝试过,我只添加了:
<key>NSAppTransportSecurity</key>
<dict>
<key>NSAllowsArbitraryLoads</key><true/>
</dict>
Run Code Online (Sandbox Code Playgroud)
在 Info.plist 中。
小智 0
我遇到过同样的问题。
当移动数据打开时,我尝试使用浏览器和邮递员访问端点,但无法访问。然后我意识到这个问题与flutter或我的代码无关。
在进一步研究之前,我建议在仅移动数据处于活动状态时尝试在不使用 flutter 应用程序的情况下发送请求。
PS移动数据 = 蜂窝数据
| 归档时间: |
|
| 查看次数: |
1868 次 |
| 最近记录: |