flutter_integrated_whb/lib/pages/mine/webViewPage.dart

62 lines
1.7 KiB
Dart

import 'package:flutter/material.dart';
import 'package:qhd_prevention/pages/my_appbar.dart';
import 'package:webview_flutter/webview_flutter.dart';
class WebViewPage extends StatefulWidget {
final String url;
final String name;
const WebViewPage({Key? key, required this.url, required this.name,}) : super(key: key);
@override
State<WebViewPage> createState() => _WebViewPageState(name);
}
class _WebViewPageState extends State<WebViewPage> {
late final WebViewController _controller;
final String name;
ValueNotifier<double> loadingProgress = ValueNotifier(0.0);
ValueNotifier<bool> isLoading = ValueNotifier(true);
_WebViewPageState(this.name);
@override
void initState() {
super.initState();
_controller = WebViewController()
..setJavaScriptMode(JavaScriptMode.unrestricted)
..setNavigationDelegate(NavigationDelegate(
onProgress: (progress) {
loadingProgress.value = progress / 100;
if (progress == 100) isLoading.value = false;
},
onPageStarted: (url) => isLoading.value = true,
onPageFinished: (url) => isLoading.value = false,
))
..loadRequest(Uri.parse(widget.url));
}
@override
Widget build(BuildContext context) {
return Column(
children: [
MyAppbar(title: name),
Expanded( child: WebViewWidget(controller: _controller),),
// ValueListenableBuilder<bool>(
// valueListenable: isLoading,
// builder: (context, loading, _) {
// return loading
// ? const Center(child: CircularProgressIndicator())
// : const SizedBox();
// },
// ),
],
);
}
}