forked from livekit/client-sdk-flutter
-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathlivekit_client_web.dart
59 lines (50 loc) · 2.05 KB
/
livekit_client_web.dart
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
// Copyright 2024 LiveKit, Inc.
//
// Licensed under the Apache License, Version 2.0 (the "License");
// you may not use this file except in compliance with the License.
// You may obtain a copy of the License at
//
// http://www.apache.org/licenses/LICENSE-2.0
//
// Unless required by applicable law or agreed to in writing, software
// distributed under the License is distributed on an "AS IS" BASIS,
// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
// See the License for the specific language governing permissions and
// limitations under the License.
import 'dart:async';
import 'package:flutter/services.dart';
import 'package:flutter_web_plugins/flutter_web_plugins.dart';
// In order to *not* need this ignore, consider extracting the "web" version
// of your plugin as a separate package, instead of inlining it in the same
// package as the core of your plugin.
// ignore: unused_import
import 'package:web/web.dart' as web
show document, HTMLScriptElement; // import_sorter: keep
/// A web implementation of the Livekit plugin.
class LiveKitWebPlugin {
static void registerWith(Registrar registrar) {
final MethodChannel channel = MethodChannel(
'livekit_client',
const StandardMethodCodec(),
registrar,
);
final pluginInstance = LiveKitWebPlugin();
channel.setMethodCallHandler(pluginInstance.handleMethodCall);
// Unofficial method load js as flutter assets (unreliable)
// html.document.head!.append(html.ScriptElement()
// ..src = 'assets/packages/livekit_client/assets/ua-parser.min.js'
// ..type = 'application/javascript'
// ..defer = true
// );
}
/// Handles method calls over the MethodChannel of this plugin.
/// Note: Check the "federated" architecture for a new way of doing this:
/// https://flutter.dev/go/federated-plugins
Future<dynamic> handleMethodCall(MethodCall call) async {
// no-op for now
throw PlatformException(
code: 'Unimplemented',
details: 'livekit for web doesn\'t implement \'${call.method}\'',
);
}
}