feat: 代理设置

This commit is contained in:
guozhigq
2023-09-03 13:46:51 +08:00
parent b9b1ac7ec5
commit aa63007c8a
5 changed files with 44 additions and 0 deletions

View File

@ -15,6 +15,7 @@ import 'package:pilipala/router/app_pages.dart';
import 'package:pilipala/pages/main/view.dart';
import 'package:pilipala/utils/app_scheme.dart';
import 'package:pilipala/utils/data.dart';
import 'package:pilipala/utils/proxy.dart';
import 'package:pilipala/utils/storage.dart';
import 'package:media_kit/media_kit.dart'; // Provides [Player], [Media], [Playlist] etc.
@ -25,6 +26,7 @@ void main() async {
[DeviceOrientation.portraitUp, DeviceOrientation.portraitDown])
.then((_) async {
await GStrorage.init();
CustomProxy().init();
runApp(const MyApp());
// 小白条、导航栏沉浸
SystemChrome.setEnabledSystemUIMode(SystemUiMode.edgeToEdge);

26
lib/utils/proxy.dart Normal file
View File

@ -0,0 +1,26 @@
import 'dart:io';
import 'package:system_proxy/system_proxy.dart';
class CustomProxy {
init() async{
Map<String, String>? proxy = await SystemProxy.getProxySettings();
if (proxy != null) {
HttpOverrides.global = ProxiedHttpOverrides(proxy['host']!, proxy['port']!);
}
}
}
class ProxiedHttpOverrides extends HttpOverrides {
final String _port;
final String _host;
ProxiedHttpOverrides(this._host, this._port);
@override
HttpClient createHttpClient(SecurityContext? context) {
return super.createHttpClient(context)
// set proxy
..findProxy = (uri) {
return "PROXY $_host:$_port;";
};
}
}