Clan Meeting – Flutter 集成
请确保您的应用已添加移动应用所需的权限。我们使用 Flutter InAppWebView 进行此集成。
Flutter 特定权限
将以下内容添加到您的 _AndroidManifest.xml_ 文件中。
<!-- Webview -->
<provider
android:name="com.pichillilorenzo.flutter_inappwebview.InAppWebViewFileProvider"
android:authorities="${applicationId}.flutter_inappwebview.fileprovider"
android:exported="false"
android:grantUriPermissions="true">
<meta-data
android:name="android.support.FILE_PROVIDER_PATHS"
android:resource="@xml/provider_paths" />
</provider>
添加以下软件包所需的权限
Flutter Downloader 相关代码是可选的,仅在您希望共享的文件在应用内下载时才需要。如果您不包含 Flutter Downloader,则文件将使用默认的移动浏览器下载。包页面上列出的必需权限对于在您的应用内下载共享文件是必需的。
https://pub.dev/packages/flutter_downloader
URL Launcher 用于打开聊天中粘贴的 URL。
https://pub.dev/packages/url_launcher
包含软件包
将以下内容添加到您的 _pubspec.yaml_ 文件中。
flutter_inappwebview: ^5.3.2
permission_handler: ^8.3.0
url_launcher: ^6.0.13
wakelock: ^0.5.6
path_provider: ^2.0.7
flutter_downloader: ^1.7.1
创建/加入会议
编辑 _main.dart_ 中的以下内容。创建会议和加入会议之间没有区别。一旦第一个参与者加入,会议就会创建,并在最后一个参与者离开时销毁。
void _joinMeeting() async {
const String domain = 'try.clanmeeting.com';
const String consumerId = 'colacoca';
String roomName = Utility.randomString(10);
const String displayName = 'John Doe';
请记住请求相机和麦克风权限
已包含在示例 _main.dart_ 中
// Request for camera and microphone permissions
await Permission.camera.request();
await Permission.microphone.request();
WebView 选项
已包含在示例 _clanmeeting.dart_ 中
InAppWebViewGroupOptions(
crossPlatform: InAppWebViewOptions(
clearCache: true,
javaScriptCanOpenWindowsAutomatically: true,
mediaPlaybackRequiresUserGesture: false, // important
),
android: AndroidInAppWebViewOptions(
supportMultipleWindows: true,
useHybridComposition: true, // important
),
ios: IOSInAppWebViewOptions(
allowsInlineMediaPlayback: true, // important
)
);