mirror of
https://github.com/HChaZZY/PiliPlus.git
synced 2025-12-06 09:13:48 +08:00
opt: webview
This commit is contained in:
@@ -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));
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -16,16 +16,24 @@ 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(
|
||||||
|
_webviewController.pageTitle.value,
|
||||||
style: Theme.of(context).textTheme.titleMedium,
|
style: Theme.of(context).textTheme.titleMedium,
|
||||||
),
|
),
|
||||||
|
),
|
||||||
actions: [
|
actions: [
|
||||||
const SizedBox(width: 4),
|
const SizedBox(width: 4),
|
||||||
IconButton(
|
IconButton(
|
||||||
|
|||||||
Reference in New Issue
Block a user