我的应用程序进行本地网络呼叫。有没有办法通过flutter/dart强制http.get()通过WiFi (即使互联网不可用)而不是3G/4G?
发布于 2019-05-16 21:11:51
核心颤动框架还没有这个特性(至少在很长一段时间内都不会有)。
当涉及到与硬件相关的事情时,您几乎可以说本机代码是唯一的选择。好消息是有很多官方和第三方包已经为你完成了这项工作。
例如,这个包是连接相关特性的流行包:https://pub.dev/packages/connectivity
以下是您需要的示例代码:
import 'package:connectivity/connectivity.dart';
var connectivityResult = await (Connectivity().checkConnectivity());
if (connectivityResult == ConnectivityResult.mobile) {
// I am connected to a mobile network.
} else if (connectivityResult == ConnectivityResult.wifi) {
// I am connected to a wifi network.
}
发布于 2019-12-31 07:57:51
有一个插件可以帮助你解决这个问题。
您需要将此https://github.com/alternadom/WiFiFlutter插件添加到您的项目中,如下所示:
wifi_iot:
git: https://github.com/alternadom/WiFiFlutter.git
然后为了强制使用wifi,你可以调用
WiFiForIoTPlugin.forceWifiUsage(true);
我保证了它的安全性,并添加了一个平台检查
import 'dart:io' show Platform;
if(Platform.isAndroid) {
WiFiForIoTPlugin.forceWifiUsage(true);
}
缺点是,当你第一次在你的应用程序中这样做时,用户将被重定向以允许应用程序更改系统设置(从那里开始,“后退”导航按钮目前不起作用)。
发布于 2019-05-17 23:56:35
对于flutter,这目前是不可能的。唯一的方法是通过paltform-channel使用平台原生代码。
https://flutter.dev/docs/development/platform-integration/platform-channels
https://stackoverflow.com/questions/56165494
复制相似问题