我是颤振新手。我正在使用 flutter 中的 Web 视图将现有的 Web 应用程序转换为移动应用程序。目标是首先使其在 Android 中运行。
我正在尝试在 flutter 移动应用程序中启用相机、麦克风选项,该应用程序已经在网络上运行。为此,我使用
webview_flutter:
中的 pubspec.yml
库。
这是我下面使用的简单代码。
main.dart
import 'package:flutter/material.dart';
import 'package:samplewebviewapplication/webview.dart';
void main() => runApp(MyApp());
// ignore: use_key_in_widget_constructors
class MyApp extends StatelessWidget {
@override
Widget build(BuildContext context) {
return MaterialApp(
title: 'Webview Project',
theme: ThemeData(
primarySwatch: Colors.blue,
),
home: const WebviewMobileApplication(),
debugShowCheckedModeBanner: false,
);
}
}
webview.dart
import 'package:flutter/material.dart';
import 'package:webview_flutter/webview_flutter.dart';
class samplewebviewapplication extends StatelessWidget {
const samplewebviewapplication({Key? key}) : super(key: key);
@override
Widget build(BuildContext context) {
return _buildWebView();
}
Widget _buildWebView() {
return const WebView(
javascriptMode: JavascriptMode.unrestricted,
initialUrl: 'https://webrtc.github.io/samples/src/content/devices/input-output/',
);
}
}
安装后生成的APK无法打开摄像头或麦克风选项。我还在
AndoroidManifest.xml
文件中添加了以下内容。
<uses-permission android:name="android.permission.INTERNET"/>
<uses-permission android:name="android.permission.RECORD_AUDIO"/>
<uses-permission android:name="android.permission.MODIFY_AUDIO_SETTINGS"/>
<uses-permission android:name="android.permission.AUDIO_CAPTURE"/>
<uses-permission android:name="android.permission.CAMERA"/>
当前网络摄像头或麦克风未启用。我发现需要在 flutter 中使用 Permissionhandler 为此。但只是看不到样品来开始。
我之前在社区中看到过这个解决方案这里使用 InAppWebview 但它也没有帮助,代码使用该库呈现了很多问题。让我知道是否有更好的解决方案来处理这个问题。
您需要请求摄像头和麦克风(如果需要)权限,例如使用permission_handler插件:
import 'package:permission_handler/permission_handler.dart';
Future main() async {
WidgetsFlutterBinding.ensureInitialized();
await Permission.camera.request();
await Permission.microphone.request();
runApp(MyApp());
}
此外,您还需要在 AndroidManifest.xml 文件中添加这些权限:
<uses-permission android:name="android.permission.INTERNET"/>
<uses-permission android:name="android.permission.CAMERA" />
<uses-permission android:name="android.permission.RECORD_AUDIO" />
<uses-permission android:name="android.permission.MODIFY_AUDIO_SETTINGS" />
<uses-permission android:name="android.permission.VIDEO_CAPTURE" />
<uses-permission android:name="android.permission.AUDIO_CAPTURE" />