我是新来的扑腾。我正在使用 flutter 中的 Web 视图将现有的 Web 应用程序转换为移动应用程序。目标是首先使其在 Android 中运行。
我正在尝试在 flutter 移动应用程序中启用相机、麦克风选项,该应用程序已经在网络上运行。我正在为此使用webview_flutter:库。pubspec.yml
这是我下面使用的简单代码。
主程序.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,
);
}
}
Run Code Online (Sandbox Code Playgroud)
网页视图.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/',
);
}
}
Run Code Online (Sandbox Code Playgroud)
安装后生成的 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"/>
Run Code Online (Sandbox Code Playgroud)
目前网络摄像头或麦克风尚未启用。我发现需要在 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());
}
Run Code Online (Sandbox Code Playgroud)
此外,您需要在 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" />
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
5297 次 |
| 最近记录: |