1-) FLUTTER - WebRTC Chromium WebView camera microphone kamera mikrofon kullanımı
1-) TERMİNALE YAZ
flutter pub add permission_handler
flutter pub add flutter_inappwebview
yani bu ikisi eklencek
permission_handler: ^9.2.0
flutter_inappwebview: ^5.3.2
2-) main.dart
import 'dart:io';
import 'package:flutter/material.dart';
import 'package:flutter_inappwebview/flutter_inappwebview.dart';
import 'package:permission_handler/permission_handler.dart';
import 'package:url_launcher/url_launcher.dart';
import 'package:webview_flutter/webview_flutter.dart';
import 'package:wiki_browser/PermissionHandlerWidget.dart';
import 'dart:async';
void main() async {
WidgetsFlutterBinding.ensureInitialized();
izinleriIste();
runApp(MyApp());
}
Future<void> izinleriIste() async {
var camerastatus = await Permission.camera.status;
var microfonstatus = await Permission.microphone.status;
if (!camerastatus.isGranted) {
await Permission.camera.request();
}
if (!microfonstatus.isGranted) {
await Permission.microphone.request();
}
}
class MyApp extends StatelessWidget {
const MyApp({key}) : super(key: key);
@override
Widget build(BuildContext context) {
return MaterialApp(
debugShowCheckedModeBanner: false,
routes: {"/": (context) => WikipediaExplorer()},
);
}
}
class WikipediaExplorer extends StatefulWidget {
@override
_WikipediaExplorerState createState() => _WikipediaExplorerState();
}
class _WikipediaExplorerState extends State<WikipediaExplorer> {
@override
void initState() {
super.initState();
}
InAppWebViewController webViewController;
Future<bool> _onBack() async {
bool goBack;
var value = await webViewController.canGoBack();
if (value) {
webViewController.goBack();
return false;
} else {
exit(0);
}
}
@override
Widget build(BuildContext context) {
return WillPopScope(
onWillPop: _onBack,
child: Scaffold(
appBar: null,
body: SafeArea(
child: Container(
child: InAppWebView(
initialUrlRequest: URLRequest( url: Uri(path: "marmaraenstituonline.com/")),
initialOptions: InAppWebViewGroupOptions(
crossPlatform: InAppWebViewOptions(
mediaPlaybackRequiresUserGesture: false,
),
),
onWebViewCreated: (InAppWebViewController controller) {
webViewController = controller;
},
androidOnPermissionRequest: (InAppWebViewController controller, String origin, List<String> resources) async {
return PermissionRequestResponse(resources: resources, action: PermissionRequestResponseAction.GRANT);
}
),
),
),
),
);
}
}
3-) permissions için kaynak
kaynak : https://youtu.be/AoMVol8ZpaA
kaynak : https://pub.dev/packages/permission_handler
4-) webrtc için kaynak
KAYNAK : https://stackoverflow.com/questions/56060208/cannot-access-the-camera-from-a-webview
KAYNAK : https://pub.dev/packages/flutter_inappwebview/install