iq/lib/app/modules/wifi_test/controllers/wifi_test_controller.dart

102 lines
2.3 KiB
Dart

// ignore_for_file: unnecessary_overrides
import 'dart:io';
import 'package:flutter/material.dart';
import 'package:flutter_inappwebview/flutter_inappwebview.dart';
import 'package:get/get.dart';
import 'package:IQ/app/global/static_informs.dart';
import 'package:url_launcher/url_launcher.dart';
class WifiTestController extends GetxController {
///
final GlobalKey webViewKey = GlobalKey();
var data = Get.arguments;
String url1 = "";
///
late PullToRefreshController pullToRefreshController;
double progress1 = 0;
onProgressChanged(_, progress2) {
if (progress2 == 100) {
pullToRefreshController.endRefreshing();
}
progress1 = progress2 / 100;
}
onLoadStart(_, url2) {
url1 = url2.toString();
update();
}
onLoadStop(_, url2) async {
pullToRefreshController.endRefreshing();
url1 = url2.toString();
update();
}
onLoadError(_, __, ___, ____) {
pullToRefreshController.endRefreshing();
}
///
InAppWebViewController? webViewController;
onWebViewCreated(controller) {
webViewController = controller;
}
onPressedBack() {
webViewController?.goBack();
}
onPressedForward() {
webViewController?.goForward();
}
onPressedReload() {
webViewController?.reload();
}
///
Future<NavigationActionPolicy?> shouldOverrideUrlLoading(_, navAc) async {
var uri = navAc.request.url!;
if (!["http", "https", "file", "chrome", "data", "javascript", "about"]
.contains(uri.scheme)) {
if (await canLaunchUrl(Uri.parse(url1))) {
// Launch the App
await launchUrl(Uri.parse(url1));
// and cancel the request
return NavigationActionPolicy.CANCEL;
}
}
return NavigationActionPolicy.ALLOW;
}
@override
void onInit() {
super.onInit();
pullToRefreshController = PullToRefreshController(
options: PullToRefreshOptions(color: brandColor),
onRefresh: () async {
if (Platform.isAndroid) {
webViewController?.reload();
} else if (Platform.isIOS) {
webViewController?.loadUrl(
urlRequest: URLRequest(
url: await webViewController?.getUrl(),
),
);
}
},
);
}
@override
void onReady() {
super.onReady();
}
@override
void onClose() {}
}