Skip to content

Instantly share code, notes, and snippets.

@iskakaushik
Created November 17, 2020 00:36
Show Gist options
  • Save iskakaushik/fa64ed87732e2b6ffeddf9e4cf0b7104 to your computer and use it in GitHub Desktop.
Save iskakaushik/fa64ed87732e2b6ffeddf9e4cf0b7104 to your computer and use it in GitHub Desktop.
import 'dart:async';
import 'package:flutter/material.dart';
import 'package:camera/camera.dart';
import 'package:webview_flutter/webview_flutter.dart';
List<CameraDescription> cameras;
Future<void> main() async {
WidgetsFlutterBinding.ensureInitialized();
cameras = await availableCameras();
runApp(CameraApp());
}
class CameraApp extends StatefulWidget {
@override
_CameraAppState createState() => _CameraAppState();
}
class _CameraAppState extends State<CameraApp> {
CameraController controller;
@override
void initState() {
super.initState();
controller = CameraController(cameras[0], ResolutionPreset.medium);
controller.initialize().then((_) {
if (!mounted) {
return;
}
setState(() {});
});
}
@override
void dispose() {
controller?.dispose();
super.dispose();
}
@override
Widget build(BuildContext context) {
if (!controller.value.isInitialized) {
return Container();
}
return Directionality(
textDirection: TextDirection.ltr,
child: Column(
children: [
AspectRatio(
aspectRatio: controller.value.aspectRatio,
child: CameraPreview(controller),
),
GoogleView(),
],
),
);
}
}
class GoogleView extends StatefulWidget {
@override
_GoogleViewState createState() => _GoogleViewState();
}
class _GoogleViewState extends State<GoogleView> {
final Completer<WebViewController> _controller =
Completer<WebViewController>();
@override
Widget build(BuildContext context) {
return Container(
width: 300,
height: 300,
child: WebView(
initialUrl: 'https://flutter.dev',
javascriptMode: JavascriptMode.unrestricted,
onWebViewCreated: (WebViewController webViewController) {
_controller.complete(webViewController);
},
),
);
}
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment