提交 2c96b817 authored 作者: 史晓晨's avatar 史晓晨

feat:①平台信息工具类②web平台不设置代理

上级 8f51d6c0
......@@ -2,6 +2,7 @@ import 'dart:io';
import 'package:flutter/material.dart';
import 'package:flutter_clx_base/flutter_clx_base.dart';
import 'package:flutter_clx_base/utils/platform_utils.dart';
import 'base_dio.dart';
......@@ -13,26 +14,26 @@ bool setProxyFlag = false; // 设置代理标识 true 设置 false 不设置
/// dio 设置代理uri
void setProxyUri(Dio? dio, bool isProdEnv) {
setProxyFlag = !isProdEnv; //生产环境不设置代理
if (!setProxyFlag) return;
if (!setProxyFlag || PlatformUtils.isWeb) return;
String? proxyIP = SpUtil.getString(spProxyIp);
String? proxyPort = SpUtil.getString(spProxyPort);
// (dio?.httpClientAdapter as IOHttpClientAdapter?)?.createHttpClient = () {
// HttpClient client = HttpClient();
// // 是否设置代理:非生产环境,开启代理后,设置代理
// bool isSetProxy = setProxyFlag &&
// proxyIP != null &&
// proxyIP.isNotEmpty &&
// proxyPort != null &&
// proxyPort.isNotEmpty &&
// SpUtil.getBool(spSwitchProxy) == true;
// if (isSetProxy) {
// client.findProxy = (uri) => "PROXY $proxyIP:$proxyPort";
// client.badCertificateCallback =
// (X509Certificate cert, String host, int port) => true;
// }
// return client;
// };
(dio?.httpClientAdapter as IOHttpClientAdapter?)?.createHttpClient = () {
HttpClient client = HttpClient();
// 是否设置代理:非生产环境,开启代理后,设置代理
bool isSetProxy = setProxyFlag &&
proxyIP != null &&
proxyIP.isNotEmpty &&
proxyPort != null &&
proxyPort.isNotEmpty &&
SpUtil.getBool(spSwitchProxy) == true;
if (isSetProxy) {
client.findProxy = (uri) => "PROXY $proxyIP:$proxyPort";
client.badCertificateCallback =
(X509Certificate cert, String host, int port) => true;
}
return client;
};
}
/// 设置代理widget
......@@ -102,11 +103,10 @@ setProxyDialog(context) {
spProxyIp, ipController.value.text.toString().trim());
SpUtil.putString(
spProxyPort, portController.value.text.toString().trim());
// 延迟1s 退出,修复保存失败问题
// 延迟1s 退出,修复保存失败问题
Future.delayed(const Duration(seconds: 1), () {
exit(0);
});
},
child: Container(
margin: const EdgeInsets.only(
......@@ -160,7 +160,8 @@ Widget _textFieldItem({title, controller}) {
child: TextField(
maxLines: 1,
controller: controller,
keyboardType: const TextInputType.numberWithOptions(decimal: true),
keyboardType:
const TextInputType.numberWithOptions(decimal: true),
decoration: const InputDecoration(
counterText: "",
border: InputBorder.none, //去掉下划线
......
import 'dart:io';
import 'package:flutter/foundation.dart';
/// 平台信息
class PlatformUtils {
static bool _isWeb() {
return kIsWeb == true;
}
static bool _isAndroid() {
return _isWeb() ? false : Platform.isAndroid;
}
static bool _isIOS() {
return _isWeb() ? false : Platform.isIOS;
}
static bool get isWeb => _isWeb();
static bool get isAndroid => _isAndroid();
static bool get isIOS => _isIOS();
}
......@@ -2,6 +2,7 @@ import 'dart:io';
import 'package:flutter/cupertino.dart';
import 'package:flutter/material.dart';
import 'package:flutter_clx_base/utils/platform_utils.dart';
import 'state_layout.dart';
......@@ -285,7 +286,7 @@ class MyBehavior extends ScrollBehavior {
@override
Widget buildOverscrollIndicator(
BuildContext context, Widget child, ScrollableDetails details) {
if (Platform.isAndroid || Platform.isFuchsia) {
if (PlatformUtils.isAndroid) {
return child;
} else {
return super.buildOverscrollIndicator(context, child, details);
......
Markdown 格式
0%
您添加了 0 到此讨论。请谨慎行事。
请先完成此评论的编辑!
注册 或者 后发表评论