This commit is contained in:
2026-03-07 17:24:59 +08:00
parent 4418ebecac
commit b0ec8ab4bd
417 changed files with 42546 additions and 2 deletions

View File

@@ -0,0 +1,58 @@
import 'package:flutter/material.dart';
import 'package:flutter_dmzj/app/app_color.dart';
import 'package:flutter_dmzj/app/controller/base_controller.dart';
import 'package:flutter_dmzj/app/log.dart';
import 'package:flutter_dmzj/services/user_service.dart';
import 'package:get/get.dart';
import 'package:webview_flutter/webview_flutter.dart';
class WebViewPageController extends BaseController {
final String url;
WebViewPageController(this.url);
final WebViewController webViewController = WebViewController();
var title = "加载中".obs;
@override
void onInit() {
initWebView();
super.onInit();
}
void initWebView() async {
webViewController.setJavaScriptMode(JavaScriptMode.unrestricted);
webViewController.setBackgroundColor(
Get.isDarkMode ? Colors.black : AppColor.backgroundColor);
webViewController.setNavigationDelegate(
NavigationDelegate(
onPageStarted: (String url) {
pageLoadding.value = true;
},
onPageFinished: (String url) async {
pageLoadding.value = false;
title.value = (await webViewController.getTitle()) ?? "";
},
onNavigationRequest: (NavigationRequest request) {
var uri = Uri.parse(request.url);
Log.d(request.url);
if (uri.scheme == "https" || uri.scheme == "http") {
return NavigationDecision.navigate;
}
return NavigationDecision.prevent;
},
),
);
webViewController.loadRequest(Uri.parse(url), headers: {
"Cookie": UserService.instance.userProfile.value?.cookieVal ?? "",
});
/// TODO 无法加载Mixed Content
/// 19年的问题了Flutter还没解决...
/// https://github.com/flutter/flutter/issues/43595
}
void refreshWeb() {
webViewController.reload();
}
}