From e3fb4d4b288076f27ccd05a8d34ee09d715889fd Mon Sep 17 00:00:00 2001 From: orz12 Date: Thu, 4 Apr 2024 10:33:18 +0800 Subject: [PATCH] =?UTF-8?q?mod:=20=E4=B8=93=E6=A0=8F=E6=8E=92=E7=89=88?= =?UTF-8?q?=E4=BC=98=E5=8C=96?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- lib/common/widgets/html_render.dart | 34 ++++++++++++++++++++--- lib/common/widgets/network_img_layer.dart | 4 ++- lib/pages/webview/controller.dart | 11 +++++++- 3 files changed, 43 insertions(+), 6 deletions(-) diff --git a/lib/common/widgets/html_render.dart b/lib/common/widgets/html_render.dart index bf58d78c..a311f9fe 100644 --- a/lib/common/widgets/html_render.dart +++ b/lib/common/widgets/html_render.dart @@ -57,6 +57,7 @@ class HtmlRender extends StatelessWidget { width: isEmote ? 22 : Get.size.width - 24, height: isEmote ? 22 : 200, src: imgUrl, + ignoreHeight: !isEmote, ); } catch (err) { return const SizedBox(); @@ -66,20 +67,26 @@ class HtmlRender extends StatelessWidget { ], style: { 'html': Style( - fontSize: FontSize.medium, - lineHeight: LineHeight.percent(140), + fontSize: FontSize.large, + lineHeight: LineHeight.percent(160), + letterSpacing: 0.3, ), + // 'br': Style(margin: Margins.zero, padding: HtmlPaddings.zero), 'body': Style(margin: Margins.zero, padding: HtmlPaddings.zero), 'a': Style( color: Theme.of(context).colorScheme.primary, textDecoration: TextDecoration.none, ), + 'br': Style( + lineHeight: LineHeight.percent(-1), + ), 'p': Style( - margin: Margins.only(bottom: 10), + margin: Margins.only(bottom: 4), + // margin: Margins.zero, ), 'span': Style( fontSize: FontSize.medium, - height: Height(1.65), + height: Height(1.8), ), 'div': Style(height: Height.auto()), 'li > p': Style( @@ -90,6 +97,25 @@ class HtmlRender extends StatelessWidget { textAlign: TextAlign.justify, ), 'img': Style(margin: Margins.only(top: 4, bottom: 4)), + 'h1,h2': Style( + fontSize: FontSize.xLarge, + fontWeight: FontWeight.bold, + margin: Margins.only(bottom: 8), + ), + 'h3,h4,h5': Style( + fontSize: FontSize.large, + fontWeight: FontWeight.bold, + margin: Margins.only(bottom: 4), + ), + 'figcaption': Style( + fontSize: FontSize.medium, + textAlign: TextAlign.center, + // margin: Margins.only(top: 4), + ), + 'strong': Style(fontWeight: FontWeight.bold), + 'figure': Style( + margin: Margins.zero, + ), }, ); } diff --git a/lib/common/widgets/network_img_layer.dart b/lib/common/widgets/network_img_layer.dart index 9a5444d7..32ac2bb6 100644 --- a/lib/common/widgets/network_img_layer.dart +++ b/lib/common/widgets/network_img_layer.dart @@ -22,6 +22,7 @@ class NetworkImgLayer extends StatelessWidget { this.quality, this.origAspectRatio, this.semanticsLabel, + this.ignoreHeight, }); final String? src; @@ -33,6 +34,7 @@ class NetworkImgLayer extends StatelessWidget { final int? quality; final double? origAspectRatio; final String? semanticsLabel; + final bool? ignoreHeight; @override Widget build(BuildContext context) { @@ -65,7 +67,7 @@ class NetworkImgLayer extends StatelessWidget { child: CachedNetworkImage( imageUrl: imageUrl, width: width, - height: height, + height: ignoreHeight == null || ignoreHeight == false? height:null, memCacheWidth: memCacheWidth, memCacheHeight: memCacheHeight, fit: BoxFit.cover, diff --git a/lib/pages/webview/controller.dart b/lib/pages/webview/controller.dart index d751c089..8909e005 100644 --- a/lib/pages/webview/controller.dart +++ b/lib/pages/webview/controller.dart @@ -44,6 +44,7 @@ class WebviewController extends GetxController { controller ..setUserAgent(Request().headerUa(type: uaType)) ..setJavaScriptMode(JavaScriptMode.unrestricted) + ..enableZoom(true) ..setNavigationDelegate( NavigationDelegate( // 页面加载 @@ -52,7 +53,9 @@ class WebviewController extends GetxController { loadProgress.value = progress; }, onPageStarted: (String url) { - final String str = Uri.parse(url).pathSegments[0]; + final parseUrl = Uri.parse(url); + if (parseUrl.pathSegments.isEmpty) return; + final String str = parseUrl.pathSegments[0]; final Map matchRes = IdUtils.matchAvorBv(input: str); final List matchKeys = matchRes.keys.toList(); if (matchKeys.isNotEmpty) { @@ -70,7 +73,13 @@ class WebviewController extends GetxController { //注入js controller.runJavaScriptReturningResult(''' document.styleSheets[0].insertRule('div.open-app-btn.bili-btn-warp {display:none;}', 0); + document.styleSheets[0].insertRule('#app__display-area > div.control-panel {display:none;}', 0); ''').then((value) => print(value)); + } else if (type.value == 'whisper') { + controller.runJavaScriptReturningResult(''' + document.querySelector('#internationalHeader').remove(); + document.querySelector('#message-navbar').remove(); + ''').then((value) => print(value)); } }, // 加载完成