diff --git a/lib/pages/webview/webview_page.dart b/lib/pages/webview/webview_page.dart index 4d378d85..1b077097 100644 --- a/lib/pages/webview/webview_page.dart +++ b/lib/pages/webview/webview_page.dart @@ -1,4 +1,5 @@ import 'dart:async'; +import 'dart:io'; import 'package:PiliPlus/http/constants.dart'; import 'package:PiliPlus/http/init.dart'; @@ -196,41 +197,44 @@ class _WebviewPageNewState extends State { // ''', // ); }, - onDownloadStartRequest: (controller, request) { - showDialog( - context: context, - builder: (context) { - String suggestedFilename = - request.suggestedFilename.toString(); - String fileSize = - CacheManage.formatSize(request.contentLength.toDouble()); - try { - suggestedFilename = Uri.decodeComponent(suggestedFilename); - } catch (e) { - debugPrint(e.toString()); - } - return AlertDialog( - title: Text( - '下载文件: $suggestedFilename ?', - style: const TextStyle(fontSize: 18), - ), - content: SelectableText(request.url.toString()), - actions: [ - TextButton( - onPressed: Get.back, - child: const Text('取消'), - ), - TextButton( - onPressed: () async { - Get.back(); - Utils.launchURL(request.url.toString()); - }, - child: Text('确定 ($fileSize)')), - ], - ); - }); - _progressStream.add(1); - }, + onDownloadStartRequest: Platform.isAndroid + ? (controller, request) { + showDialog( + context: context, + builder: (context) { + String suggestedFilename = + request.suggestedFilename.toString(); + String fileSize = CacheManage.formatSize( + request.contentLength.toDouble()); + try { + suggestedFilename = + Uri.decodeComponent(suggestedFilename); + } catch (e) { + debugPrint(e.toString()); + } + return AlertDialog( + title: Text( + '下载文件: $suggestedFilename ?', + style: const TextStyle(fontSize: 18), + ), + content: SelectableText(request.url.toString()), + actions: [ + TextButton( + onPressed: Get.back, + child: const Text('取消'), + ), + TextButton( + onPressed: () async { + Get.back(); + Utils.launchURL(request.url.toString()); + }, + child: Text('确定 ($fileSize)')), + ], + ); + }); + _progressStream.add(1); + } + : null, shouldOverrideUrlLoading: (controller, navigationAction) async { final String? str = navigationAction.request.url!.pathSegments.getOrNull(0);