Flutter - 在 inAppWebView 中使用 Jitsi Meet 回调函数

3

我需要在我们的Flutter应用程序中使用Webview集成Jitsi Meet。最初,我使用了以下jitsi-meet插件“https://pub.dev/packages/jitsi_meet”,但不幸的是,由于缺少功能(如jitsi连接丢失后的重新连接和jitsi-meet插件中的参与者信息),我不得不切换到InAppwebview插件“https://pub.dev/packages/flutter_inappwebview”。我已成功将jitsi集成到Webview中,但不知道如何包括jitsi回调,例如onConferenceJoined、onParticipantLeft等。任何帮助都将不胜感激。

import 'dart:async';
import 'package:flutter/material.dart';
import 'package:flutter_inappwebview/flutter_inappwebview.dart';
import 'package:permission_handler/permission_handler.dart';

Future main() async {
  WidgetsFlutterBinding.ensureInitialized();
  await Permission.camera.request();
  await Permission.microphone.request();

  runApp(MyApp());
}

class MyApp extends StatefulWidget {
  @override
  _MyAppState createState() => new _MyAppState();
}

class _MyAppState extends State<MyApp> {
@override
Widget build(BuildContext context) {
return MaterialApp(home: InAppWebViewPage());
}
}

class InAppWebViewPage extends StatefulWidget {
@override
_InAppWebViewPageState createState() => new _InAppWebViewPageState();
}

class _InAppWebViewPageState extends State<InAppWebViewPage> {
  InAppWebViewController _webViewController;

 @override
Widget build(BuildContext context) {
return Scaffold(
    appBar: AppBar(title: Text("InAppWebView")),
    body: Container(
        child: Column(children: <Widget>[
      Expanded(
        child: Container(
          child: InAppWebView(
              initialUrl: "https://meet.jit.si/hello",
              initialOptions: InAppWebViewGroupOptions(
                crossPlatform: InAppWebViewOptions(
                  mediaPlaybackRequiresUserGesture: false,
                  debuggingEnabled: true,
                ),
              ),
              onWebViewCreated: (InAppWebViewController controller) {
                _webViewController = controller;
              },
              androidOnPermissionRequest:
                  (InAppWebViewController controller, String origin,
                      List<String> resources) async {
                return PermissionRequestResponse(
                    resources: resources,
                    action: PermissionRequestResponseAction.GRANT);
              }),
        ),
      ),
    ])));
}
}
2个回答

3
抱歉说,但你不能通过 webview 访问这些功能,因为当你通过 webview 访问时,它类似于作为用户在浏览器中打开该网站。你可以使用 Jitsi SDK 或插件来修改设置。
建议:使用 jitsi meet plugin,你之前已经使用过它,它已经具有你想要的这些功能:
onConferenceWillJoin    Meeting is loading.
onConferenceJoined  User has joined meeting.
onConferenceTerminated  User has exited the conference.
onPictureInPictureWillEnter User entered PIP mode.
onPictureInPictureTerminated    User exited PIP mode.
onError Error has occurred with listening to meeting events.

但是没有参与者信息的功能。但是您可以通过托管自己的Jitsi服务器来实现这一点,这将允许您自定义它或直接在自定义域上具有此类设置,以便您可以通过Webview简单地访问应用程序。
我已经使用了这个插件很长时间,并制作了一个发布在Play商店上的应用程序。检查一下,你是否想要类似的应用程序?应用程序名称Just Meet。如果您想要这样的应用程序,那么我可以通过我的存储库帮助您。

0
也许你可以使用socket.io在应用程序和Webview之间进行通信。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接