🙂 İNSANLARIN EN HAYIRLISI INSANLARA FAYDALI OLANDIR 🙂

Ramazan HABER / FLUTTER / WebRTC Chromium WebView camera microphone kamera mikrofon kullanımı

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

flutter pub get

 

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

 

 2022 Nisan 01 Cuma
 544