diff --git a/README.md b/README.md index a8490d0..f3fe40b 100644 --- a/README.md +++ b/README.md @@ -76,7 +76,7 @@ VPN->代理->分流, 这三个功能如果同时设置, 您会在您手机的VPN ### 开发环境准备 - [golang](https://golang.org/) (1.16以上版本) -- [flutter](https://flutter.dev/) (2.5.3)(flutter不同版本api差异较大,建议使用同样版本) +- [flutter](https://flutter.dev/) (2.5.3)(flutter不同版本api差异较大,建议使用临近的版本) ### 环境配置 diff --git a/android/app/build.gradle b/android/app/build.gradle index 21eeee5..ae88218 100644 --- a/android/app/build.gradle +++ b/android/app/build.gradle @@ -36,7 +36,7 @@ android { // TODO: Specify your own unique Application ID (https://developer.android.com/studio/build/application-id.html). applicationId "niuhuan.pikapika" minSdkVersion 16 - targetSdkVersion 31 + targetSdkVersion 30 versionCode flutterVersionCode.toInteger() versionName flutterVersionName } diff --git a/lib/basic/config/FullScreenUI.dart b/lib/basic/config/FullScreenUI.dart index 4d2f9b2..8022728 100644 --- a/lib/basic/config/FullScreenUI.dart +++ b/lib/basic/config/FullScreenUI.dart @@ -1,5 +1,7 @@ /// 全屏操作 +import 'dart:io'; + import 'package:flutter/material.dart'; import 'package:flutter/services.dart'; @@ -15,7 +17,6 @@ enum FullScreenUI { const _propertyName = "fullScreenUI"; late FullScreenUI fullScreenUI; - Future initFullScreenUI() async { fullScreenUI = _fullScreenUIFromString(await method.loadProperty( _propertyName, @@ -67,21 +68,25 @@ void switchFullScreenUI() { list.clear(); break; } - print(fullScreenUI); - SystemChrome.setEnabledSystemUIOverlays(list); + if (Platform.isAndroid || Platform.isIOS) { + SystemChrome.setEnabledSystemUIOverlays(list); + } } Widget fullScreenUISetting() { - return StatefulBuilder( - builder: (BuildContext context, void Function(void Function()) setState) { - return ListTile( - title: Text("全屏UI"), - subtitle: Text(currentFullScreenUIName()), - onTap: () async { - await chooseFullScreenUI(context); - setState(() {}); - }, - ); - }, - ); + if (Platform.isAndroid || Platform.isIOS) { + return StatefulBuilder( + builder: (BuildContext context, void Function(void Function()) setState) { + return ListTile( + title: Text("全屏UI"), + subtitle: Text(currentFullScreenUIName()), + onTap: () async { + await chooseFullScreenUI(context); + setState(() {}); + }, + ); + }, + ); + } + return Container(); } diff --git a/lib/screens/ComicReaderScreen.dart b/lib/screens/ComicReaderScreen.dart index 53e8572..f56dd88 100644 --- a/lib/screens/ComicReaderScreen.dart +++ b/lib/screens/ComicReaderScreen.dart @@ -1,4 +1,5 @@ import 'dart:async'; +import 'dart:io'; import 'package:flutter/material.dart'; import 'package:flutter/services.dart'; @@ -216,8 +217,13 @@ class _ComicReaderScreenState extends State { Future _onFullScreenChange(bool fullScreen) async { setState(() { - SystemChrome.setEnabledSystemUIOverlays( - fullScreen ? [] : SystemUiOverlay.values); + if (fullScreen) { + if (Platform.isAndroid || Platform.isIOS) { + SystemChrome.setEnabledSystemUIOverlays([]); + } + } else { + switchFullScreenUI(); + } _fullScreen = fullScreen; }); } diff --git a/lib/screens/DownloadReaderScreen.dart b/lib/screens/DownloadReaderScreen.dart index e589e9f..80f9fa2 100644 --- a/lib/screens/DownloadReaderScreen.dart +++ b/lib/screens/DownloadReaderScreen.dart @@ -1,4 +1,5 @@ import 'dart:async'; +import 'dart:io'; import 'package:flutter/material.dart'; import 'package:flutter/services.dart'; @@ -198,8 +199,13 @@ class _DownloadReaderScreenState extends State { Future _onFullScreenChange(bool fullScreen) async { setState(() { - SystemChrome.setEnabledSystemUIOverlays( - fullScreen ? [] : SystemUiOverlay.values); + if (fullScreen) { + if (Platform.isAndroid || Platform.isIOS) { + SystemChrome.setEnabledSystemUIOverlays([]); + } + } else { + switchFullScreenUI(); + } _fullScreen = fullScreen; }); }