joinMeeting method
Future<MeetHourMeetingResponse>
joinMeeting(
- MeetHourMeetingOptions options, {
- MeetHourMeetingListener? listener,
- Map<
RoomNameConstraintType, RoomNameConstraint> ? roomNameConstraints,
override
Joins a meeting based on the MeetHourMeetingOptions passed in. A MeetHourMeetingListener can be attached to this meeting that will automatically be removed when the meeting has ended
Implementation
@override
Future<MeetHourMeetingResponse> joinMeeting(MeetHourMeetingOptions options,
{MeetHourMeetingListener? listener,
Map<RoomNameConstraintType, RoomNameConstraint>?
roomNameConstraints}) async {
// encode `options` Map to Json to avoid error
// in interoperability conversions
String webOptions = jsonEncode(options.webOptions);
String serverURL = options.serverURL ?? "meethour.io";
serverURL = serverURL.replaceAll(cleanDomain, "");
api = meethour.MeetHourAPI(serverURL.toJS, webOptions.toJS);
// setup listeners
if (listener != null) {
api?.on("videoConferenceJoined".toJS, ((JSAny? _message) {
// Mapping object according with meethour external api source code
Map<String, dynamic> message = {
"displayName": _getPropertyString(_message, "displayName"),
"roomName": _getPropertyString(_message, "roomName")
};
listener.onConferenceJoined?.call(message);
}).toJS);
api?.on("videoConferenceLeft".toJS, ((JSAny? _message) {
// Mapping object according with meethour external api source code
Map<String, dynamic> message = {
"roomName": _getPropertyString(_message, "roomName")
};
listener.onConferenceTerminated?.call(message);
}).toJS);
api?.on("feedbackSubmitted".toJS, ((JSAny? message) {
debugPrint("feedbackSubmitted message: $message");
listener.onError?.call(message);
}).toJS);
// NOTE: `onConferenceWillJoin` is not supported or nof found event in web
// add geeric listener
_addGenericListeners(listener);
// force to dispose view when close meeting
// this is needed to allow create another room in
// the same view without reload it
api?.on("readyToClose".toJS, ((JSAny? message) {
api?.dispose();
}).toJS);
}
return MeetHourMeetingResponse(isSuccess: true);
}