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

View File

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