diff --git a/lib/pages/opus/controller.dart b/lib/pages/opus/controller.dart index 86dd67a5..3cf844cc 100644 --- a/lib/pages/opus/controller.dart +++ b/lib/pages/opus/controller.dart @@ -39,6 +39,7 @@ class OpusController extends GetxController { 'articleType': 'cv', }); } else { + title.value = res['data'].detail!.basic!.title!; opusData.value = res['data']; } } @@ -91,6 +92,15 @@ class OpusController extends GetxController { ); } + // 跳转webview + void onJumpWebview() { + Get.toNamed('/webview', parameters: { + 'url': url, + 'type': 'webview', + 'pageTitle': title.value, + }); + } + @override void onClose() { scrollController.removeListener(_scrollListener); diff --git a/lib/pages/opus/view.dart b/lib/pages/opus/view.dart index 8535230f..434a9405 100644 --- a/lib/pages/opus/view.dart +++ b/lib/pages/opus/view.dart @@ -60,9 +60,14 @@ class _OpusPageState extends State { }, ), actions: [ - IconButton( - icon: const Icon(Icons.more_vert_rounded), - onPressed: () {}, + PopupMenuButton( + icon: const Icon(Icons.more_vert_outlined), + itemBuilder: (BuildContext context) => [ + PopupMenuItem( + onTap: controller.onJumpWebview, + child: const Text('查看原网页'), + ) + ], ), const SizedBox(width: 16), ], diff --git a/lib/pages/read/controller.dart b/lib/pages/read/controller.dart index a0e4ef8e..efa43c98 100644 --- a/lib/pages/read/controller.dart +++ b/lib/pages/read/controller.dart @@ -22,6 +22,7 @@ class ReadPageController extends GetxController { title.value = Get.parameters['title'] ?? ''; id = Get.parameters['id']!; articleType = Get.parameters['articleType']!; + url = 'https://www.bilibili.com/read/cv$id'; scrollController.addListener(_scrollListener); fetchViewInfo(); } @@ -85,6 +86,15 @@ class ReadPageController extends GetxController { ReadHttp.getViewInfo(id: id); } + // 跳转webview + void onJumpWebview() { + Get.toNamed('/webview', parameters: { + 'url': url, + 'type': 'webview', + 'pageTitle': title.value, + }); + } + @override void onClose() { scrollController.removeListener(_scrollListener); diff --git a/lib/pages/read/view.dart b/lib/pages/read/view.dart index 7c1e0601..d37eeae5 100644 --- a/lib/pages/read/view.dart +++ b/lib/pages/read/view.dart @@ -72,9 +72,14 @@ class _ReadPageState extends State { }, ), actions: [ - IconButton( - icon: const Icon(Icons.more_vert_rounded), - onPressed: () {}, + PopupMenuButton( + icon: const Icon(Icons.more_vert_outlined), + itemBuilder: (BuildContext context) => [ + PopupMenuItem( + onTap: controller.onJumpWebview, + child: const Text('查看原网页'), + ) + ], ), const SizedBox(width: 16), ], diff --git a/lib/pages/webview/controller.dart b/lib/pages/webview/controller.dart index 0fa24dea..93a7144d 100644 --- a/lib/pages/webview/controller.dart +++ b/lib/pages/webview/controller.dart @@ -1,19 +1,8 @@ -// ignore_for_file: avoid_print - -import 'package:flutter/material.dart'; -import 'package:flutter/services.dart'; -import 'package:flutter_smart_dialog/flutter_smart_dialog.dart'; import 'package:get/get.dart'; -import 'package:hive/hive.dart'; import 'package:pilipala/http/init.dart'; -import 'package:pilipala/http/user.dart'; -import 'package:pilipala/pages/home/index.dart'; -import 'package:pilipala/pages/media/index.dart'; -import 'package:pilipala/utils/cookie.dart'; import 'package:pilipala/utils/event_bus.dart'; import 'package:pilipala/utils/id_utils.dart'; import 'package:pilipala/utils/login.dart'; -import 'package:pilipala/utils/storage.dart'; import 'package:webview_flutter/webview_flutter.dart'; class WebviewController extends GetxController { diff --git a/lib/utils/app_scheme.dart b/lib/utils/app_scheme.dart index 67b8a5d5..22184139 100644 --- a/lib/utils/app_scheme.dart +++ b/lib/utils/app_scheme.dart @@ -82,7 +82,7 @@ class PiliSchame { case 'opus': if (path.startsWith('/detail')) { var opusId = path.split('/').last; - Get.toNamed('/opus', arguments: { + Get.toNamed('/opus', parameters: { 'title': '', 'id': opusId, 'articleType': 'opus',