app-starlock/lib/mine/about/webviewShow_page.dart

82 lines
2.4 KiB
Dart
Executable File

import 'package:flutter/material.dart';
import 'package:flutter_screenutil/flutter_screenutil.dart';
import 'package:get/get.dart';
import 'package:star_lock/app_settings/app_colors.dart';
import 'package:star_lock/flavors.dart';
import 'package:star_lock/mine/about/webviewShow_logic.dart';
import 'package:star_lock/tools/titleAppBar.dart';
import 'package:webview_flutter/webview_flutter.dart';
class WebviewShowPage extends StatefulWidget {
const WebviewShowPage({Key? key}) : super(key: key);
@override
State<WebviewShowPage> createState() => _WebviewShowPageState();
}
class _WebviewShowPageState extends State<WebviewShowPage> {
final logic = Get.put(WebviewShowLogic());
final state = Get.find<WebviewShowLogic>().state;
@override
void initState() {
super.initState();
}
@override
Widget build(BuildContext context) {
state.webViewController.loadRequest(Uri.parse(state.webURL));
return F.sw(skyCall: () => defaultView(), xhjCall: () => xhjView());
}
Widget defaultView() {
return Scaffold(
resizeToAvoidBottomInset: false,
backgroundColor: const Color(0xFFFFFFFF),
appBar: TitleAppBar(
barTitle: getWebTitle(),
haveBack: true,
backgroundColor: AppColors.mainColor,
),
body: Obx(() => Column(
children: <Widget>[
Container(
padding: EdgeInsets.only(bottom: 10.w),
child: LinearProgressIndicator(
value: state.webProgress.value,
backgroundColor: Colors.grey,
valueColor:
AlwaysStoppedAnimation<Color>(AppColors.mainColor),
),
),
Expanded(
child: WebViewWidget(controller: state.webViewController),
),
],
)));
}
Widget xhjView() {
return SafeArea(
child: Stack(
children: [
WebViewWidget(controller: state.webViewController),
IconButton(
onPressed: () {
Get.back();
},
icon: const Icon(Icons.arrow_back_ios)),
],
),
);
}
String getWebTitle() {
String webTitleStr = state.webTitle;
state.webViewController.getTitle().then((result) {
webTitleStr = result!;
});
return webTitleStr;
}
}