Я использую библиотеку instascan.min js для сканирования QR-кодов в моем веб-угловом приложении js.но в моем веб-представлении трепетания я получил ошибку - не удается получить доступ к видеопотоку (NotAllowedError), и я не могу это исправить.Я не очень хорошо знаю флаттер.
Я пытался дать разрешение на доступ к камере, но он не работает.
// # Мой код флаттера
import 'package:flutter/material.dart';
import 'package:flutter_webview_plugin/flutter_webview_plugin.dart';
void main () => runApp(MyApp());
class MyApp extends StatelessWidget{
@override
Widget build(BuildContext context) {
return MaterialApp(
title: 'FOTOFACE WALLET',
debugShowCheckedModeBanner: false,
home: Home(),
);
}
}
class Home extends StatefulWidget{
@override
_HomeState createState() => _HomeState();
}
class _HomeState extends State<Home>{
@override
Widget build(BuildContext context) {
return WebviewScaffold(
appBar: PreferredSize(
preferredSize: Size.fromHeight(0),
child: AppBar(
automaticallyImplyLeading: true, // hides leading widget
backgroundColor: new Color(0xFF404E67),
)
),
url: "https://fotofacewallet.com",
initialChild: Center(
child: CircularProgressIndicator(),
),
);
}
}
// # это мой код сканера в угловом js-контроллере
$scope.scan = () => {
var overlay = $('.overlay'),
close = $('<div class="close" id="closescanbtn">close</div>');
overlay.append(close);
let scanner = new Instascan.Scanner({
video: document.getElementById('preview')
});
scanner.addListener('scan', function (content) {
scanner.stop();
$('.overlay').fadeOut();
$('.overlay').hide();
$scope.scanpayProcess(content);
});
Instascan.Camera.getCameras().then(function (cameras) {
if (cameras.length > 0) {
if(cameras[1]){
scanner.start(cameras[1]);
} else {
scanner.start(cameras[0]);
}
} else {
alert('No cameras found.');
}
}).catch(function (e) {
alert(e);
});
$('.overlay').show();
}
Я ожидаю, что изображение камеры будет отображаться в виде трепетания.