webview_flutter: ^3.0.2
modal_progress_hud: ^0.1.3
import 'package:drawer/drawer.dart';
import 'package:drawer/webview.dart';
import 'package:flutter/material.dart';
void main() {
runApp(MaterialApp(home: MyApp()));
}
class MyApp extends StatefulWidget {
const MyApp({Key? key}) : super(key: key);
@override
State<MyApp> createState() => _MyAppState();
}
class _MyAppState extends State<MyApp> {
@override
Widget build(BuildContext context) {
return Container(
child: SafeArea(
child: Scaffold(
drawer: MainDrawer(),
appBar: AppBar(
title: Text("Drawer"),
),
body: GestureDetector(
child: Text(
// AppLocalizations.of(context).main_drawer_wallet,
'Privacy Policy',
style: TextStyle(
color: Colors.black,
//color: Color.fromRGBO(153, 153, 153, 1),
fontSize: 14,
fontWeight: FontWeight.w600)),
onTap: () {
Navigator.push(context, MaterialPageRoute(builder: (context) {
return CommonWebviewScreen(
url: 'https://www.youtube.com/',
);
}));
}),
),
),
);
}
}
...................................................
import 'dart:async';
import 'package:flutter/material.dart';
import 'package:modal_progress_hud/modal_progress_hud.dart';
import 'package:webview_flutter/webview_flutter.dart';
class CommonWebviewScreen extends StatefulWidget {
String url;
String page_name;
CommonWebviewScreen({this.url = "", this.page_name = ""});
@override
_CommonWebviewScreenState createState() => _CommonWebviewScreenState();
}
class _CommonWebviewScreenState extends State<CommonWebviewScreen> {
late WebViewController _webViewController;
bool isLoading = true;
final Completer<WebViewController> _controller =
Completer<WebViewController>();
@override
void initState() {
// TODO: implement initState
super.initState();
WebView.platform = AndroidWebView();
}
@override
Widget build(BuildContext context) {
return Scaffold(
appBar: AppBar(
title: Text("Drawer"),
),
backgroundColor: Colors.white,
body: buildBody(),
);
}
buildBody() {
return SizedBox.expand(
child: ModalProgressHUD(
inAsyncCall: isLoading,
child: WebView(
debuggingEnabled: false,
javascriptMode: JavascriptMode.unrestricted,
onWebViewCreated: (controller) {
_webViewController = controller;
_webViewController.loadUrl(widget.url);
},
onWebResourceError: (error) {},
onPageFinished: (page) {
//print(page.toString());
setState(() {
isLoading = false;
});
},
),
),
);
}
}
0 মন্তব্যসমূহ