In order to use the Wise SDK, it should be initialised first.
Set your Vendor ID and Namespace
Set Lens icon (Optional)
Enable / Disable screen capture (Optional)
5. Joining a meeting
You can use joinMeeting() to join a meeting. The required {token} can be found in the {public link} of a classroom. To get the {public link} you should call /user/v2/classes/:classId API (documentation)
5.1 Join Meeting by Classroom Public ID
5.2 Join Meeting by Classroom ID
6. Login using SSO Token
To login into SDK using SSO Token, pass tho SSO token to loginUsingSSOToken() method.
To logout from SSO, call logoutSSO() method.
7. Meeting listeners
WiseSDKMeetingListener provides necessary callbacks to listen to meeting status.
class _MyAppState extends State<MyApp> {
final _wiseSdk = Wisesdk();
// channel name must by `wisesdk`
final wiseChannelName = 'wisesdk';
@override
void initState() {
super.initState();
initPlatformState();
final methodChannel = MethodChannel(wiseChannelName);
methodChannel.setMethodCallHandler(_wiseSDKMeetingListener);
}
Future<void> initPlatformState() async {
// Platform messages may fail, so we use a try/catch PlatformException.
// We also handle the message potentially returning null.
try {
await _wiseSdk.initSdk("650d614xxxxxxxxb9988934f", "yellowmonkey");
if (Platform.isIOS) {
// set screen share group id and bundle id
_wiseSdk.enableScreenShare("group.live.wise.wisesdkExample", "live.wise.wisesdkExample.screen");
}
// enable / disable screen capture (works on Android only)
_wiseSdk.disableScreenCapture(false);
}
}
// join meeting by classroom public ID
// This doesn't need Authentication or SSO Login
final joinParams = {
"classroomPublicId": "65953bb0aa30204e26b047982b51053399",
"userName": "John",
"userId": "userId_101001"
};
if (await _wiseSdk.isMeetingInProgress()) {
// return to in progress meeting
_wiseSdk.gotoMeeting();
} else {
_wiseSdk.joinMeeting(joinParams);
}
// join meeting by classroom number
// SSO Login or Auth token is needed to do this
final joinParams = {
"classroomId": "65953bb0aa3f4e26b047982b",
"disableScreenCapture": true
};
if (await _wiseSdk.isMeetingInProgress()) {
// return to in progress meeting
_wiseSdk.gotoMeeting();
} else {
_wiseSdk.joinMeeting(joinParams);
}
Future<void> _wiseSDKMeetingListener(MethodCall call) async {
switch (call.method) {
case "onInitialised":
{
debugPrint("onInitialised");
}
case "onMeetingConnecting":
{
debugPrint("onMeetingConnecting");
}
case "onMeetingEnded":
{
final userId = call.arguments;
debugPrint("onMeetingEnded userId: $userId");
}
case "onMeetingEndedByHost":
{
debugPrint("onMeetingEndedByHost");
}
case "onMeetingEndedWithError":
{
final data = call.arguments;
int errorCode = data["errorCode"];
int internalErrorCode = data["internalErrorCode"];
String message = data["message"];
debugPrint(
"onMeetingEndedWithError $errorCode, $internalErrorCode, $message");
}
case "onMeetingNeedPasswordOrDisplayName":
{
debugPrint("onMeetingNeedPasswordOrDisplayName");
}
case "onMeetingNotStartedByHostError":
{
debugPrint("onMeetingNotStartedByHostError");
}
case "onMeetingStarted":
{
final isMeetingStarted = call.arguments;
debugPrint(
"onMeetingStarted isMeetingStarted: $isMeetingStarted");
}
case "onSDKError":
{
final data = call.arguments;
int wiseErrorCode = data["wiseErrorCode"];
int errorCode = data["errorCode"];
int internalErrorCode = data["internalErrorCode"];
debugPrint(
"onSDKError $wiseErrorCode, $errorCode, $internalErrorCode");
}
case "onVendorIdError":
{
debugPrint("onVendorIdError");
}
}
}
# zoom sdk
-keep class us.zoom.**{*;}
-keep class com.zipow.**{*;}
-keep class us.zipow.**{*;}
-keep class org.webrtc.**{*;}
-keep class us.google.protobuf.**{*;}
-keep class com.google.crypto.tink.**{*;}
-keep class androidx.security.crypto.**{*;}
# wise sdk
-keep class com.wise.sdk.data.** { *; }
-keep class com.wise.sdk.core.** { *; }
-keep class com.wise.sdk.network.result.** { *; }