Header Ads Widget

Responsive Advertisement

webView in flutter

 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 মন্তব্যসমূহ