a075f24000
The current implementation doesn't use the API and Transport modules. This is due to the fact that they are too tied to APP at the moment, which is web only. Once API is refactored and moved into the Redux store this will be adjusted, though it's unlikely that the lowest level React Native module (ExternalAPI) changes drastically. This commit also introduces a stopgap limitation of only allowing a single instance for JitsiMeetView objects on both Android and iOS. React Native doesn't really play well with having multiple instances of the same modules on the same bridge, since they behave a bit like singletons. Even if we were to use multiple bridges, some features depend on system-level global state, such as the AVAudioSession mode or Android's immersive mode. Further attempts will be made at lifting this limitation in the future, though. |
||
---|---|---|
.. | ||
app | ||
jitsi-meet.xcworkspace | ||
scripts | ||
sdk | ||
Podfile | ||
README.md | ||
apple-app-site-association |
README.md
Jitsi Meet SDK for iOS
This directory contains the source code of the Jitsi Meet app and the Jitsi Meet SDK for iOS.
Jitsi Meet SDK
JitsiMeet is an iOS framework which embodies the whole Jitsi Meet experience and makes it reusable by third-party apps.
To get started:
-
Add a
JitsiMeetView
to your app using a Storyboard or Interface Builder, for example. -
Then, once the view has loaded, set the delegate in your controller and load the desired URL:
- (void)viewDidLoad {
[super viewDidLoad];
JitsiMeetView *view = (JitsiMeetView *) self.view;
view.delegate = self;
[view loadURL:nil];
}
JitsiMeetView class
The JitsiMeetView
class is the entry point to the SDK. It a subclass of
UIView
which renders a full conference in the designated area.
[meetView loadURL:[NSURL URLWithString:@"https://meet.jit.si/test123"]];
Loads the given URL and joins the room. If null
is specified, the welcome page
is displayed instead.
Universal / deep linking
In order to support Universal / deep linking, JitsiMeetView
offers 2 class
methods that you app's delegate should call in order for the app to follow those
links.
- (BOOL)application:(UIApplication *)application
continueUserActivity:(NSUserActivity *)userActivity
restorationHandler:(void (^)(NSArray *restorableObjects))restorationHandler
{
return [JitsiMeetView application:application
continueUserActivity:userActivity
restorationHandler:restorationHandler];
}
- (BOOL)application:(UIApplication *)application
openURL:(NSURL *)url
sourceApplication:(NSString *)sourceApplication
annotation:(id)annotation
{
return [JitsiMeetView application:application
openURL:url
sourceApplication:sourceApplication
annotation:annotation];
}
JitsiMeetViewDelegate
This delegate is optional, and can be set on the JitsiMeetView
instance using
the delegate
property.
It provides information about the conference state: was it joined, left, did it fail?
All methods in this delegate are optional.
conferenceFailed
Called when a joining a conference was unsuccessful or when there was an error while in a conference.
The data
dictionary contains an "error" key describing the error and a "url"
key with the conference URL.
conferenceJoined
Called when a conference was joined.
The data
dictionary contains a "url" key with the conference URL.
conferenceLeft
Called when a conference was left.
The data
dictionary contains a "url" key with the conference URL.
conferenceWillJoin
Called before a conference is joined.
The data
dictionary contains a "url" key with the conference URL.
conferenceWillLeave
Called before a conference is left.
The data
dictionary contains a "url" key with the conference URL.