opt: webview

This commit is contained in:
bggRGjQaUbCoE
2024-09-03 08:43:37 +08:00
parent e6b61658c9
commit 751db80b4a
2 changed files with 17 additions and 9 deletions

View File

@@ -9,7 +9,7 @@ import 'package:webview_flutter/webview_flutter.dart';
class WebviewController extends GetxController { class WebviewController extends GetxController {
String url = ''; String url = '';
RxString type = ''.obs; RxString type = ''.obs;
String pageTitle = ''; RxString pageTitle = ''.obs;
String uaType = ''; String uaType = '';
final WebViewController controller = WebViewController(); final WebViewController controller = WebViewController();
RxInt loadProgress = 0.obs; RxInt loadProgress = 0.obs;
@@ -19,9 +19,9 @@ class WebviewController extends GetxController {
@override @override
void onInit() { void onInit() {
super.onInit(); super.onInit();
url = Get.parameters['url']!; url = Get.parameters['url'] ?? '';
type.value = Get.parameters['type']!; type.value = Get.parameters['type'] ?? '';
pageTitle = Get.parameters['pageTitle']!; pageTitle.value = Get.parameters['pageTitle'] ?? '';
uaType = Get.parameters['uaType'] ?? 'mob'; uaType = Get.parameters['uaType'] ?? 'mob';
webviewInit(uaType: uaType); webviewInit(uaType: uaType);
@@ -54,7 +54,7 @@ class WebviewController extends GetxController {
} }
} }
}, },
onPageFinished: (String url) { onPageFinished: (String url) async {
if (type.value == 'liveRoom') { if (type.value == 'liveRoom') {
print("adding"); print("adding");
//注入js //注入js
@@ -68,6 +68,7 @@ class WebviewController extends GetxController {
document.querySelector('#message-navbar').remove(); document.querySelector('#message-navbar').remove();
''').then((value) => print(value)); ''').then((value) => print(value));
} }
pageTitle.value = await controller.getTitle() ?? '';
}, },
// 加载完成 // 加载完成
onUrlChange: (UrlChange urlChange) async { onUrlChange: (UrlChange urlChange) async {
@@ -92,5 +93,4 @@ class WebviewController extends GetxController {
) )
..loadRequest(Uri.parse(url)); ..loadRequest(Uri.parse(url));
} }
} }

View File

@@ -16,15 +16,23 @@ class WebviewPage extends StatefulWidget {
class _WebviewPageState extends State<WebviewPage> { class _WebviewPageState extends State<WebviewPage> {
final WebviewController _webviewController = Get.put(WebviewController()); final WebviewController _webviewController = Get.put(WebviewController());
@override
void dispose() {
Get.delete<WebviewController>();
super.dispose();
}
@override @override
Widget build(BuildContext context) { Widget build(BuildContext context) {
return Scaffold( return Scaffold(
appBar: AppBar( appBar: AppBar(
centerTitle: false, centerTitle: false,
titleSpacing: 0, titleSpacing: 0,
title: Text( title: Obx(
_webviewController.pageTitle, () => Text(
style: Theme.of(context).textTheme.titleMedium, _webviewController.pageTitle.value,
style: Theme.of(context).textTheme.titleMedium,
),
), ),
actions: [ actions: [
const SizedBox(width: 4), const SizedBox(width: 4),