From f13ff98069fba61c3ccacf926eed218fdaa9d148 Mon Sep 17 00:00:00 2001 From: Carson Chen Date: Mon, 4 Feb 2019 14:23:42 -0800 Subject: [PATCH] v1.0.0 --- src/@ionic-native/plugins/zoom/index.ts | 170 ++++++++++++++++++++++++ 1 file changed, 170 insertions(+) create mode 100755 src/@ionic-native/plugins/zoom/index.ts diff --git a/src/@ionic-native/plugins/zoom/index.ts b/src/@ionic-native/plugins/zoom/index.ts new file mode 100755 index 0000000000..8e10e0d40a --- /dev/null +++ b/src/@ionic-native/plugins/zoom/index.ts @@ -0,0 +1,170 @@ +import { Injectable } from '@angular/core'; +import { Cordova, IonicNativePlugin, Plugin } from '@ionic-native/core'; + +/** + * @name Zoom + * @description + * A Cordova plugin to use Zoom Video Conferencing services on Cordova applications. + * + * @usage + * ```typescript + * import { Zoom } from '@ionic-native/zoom'; + * + * + * constructor(private zoomService: Zoom) { } + * + * ... + * + * // Initialize Zoom SDK, need to be called when app fired up. + * this.zoomService.initialize(API_KEY, API_SECRET) + * .then((success: any) => console.log(success)) + * .catch((error: any) => console.log(error)); + * + * // Log user in with Zoom username and password. + * this.zoomService.login(userName, password) + * .then((success: any) => console.log(success)) + * .catch((error: any) => console.log(error)); + * + * // Log user out. + * this.zoomService.logout() + * .then((success: boolean) => console.log(success)) + * .catch((error: any) => console.log(error)); + * + * // Check whether user is logged in. + * this.zoomService.isLoggedIn() + * .then((success: boolean) => console.log(success)) + * .catch((error: any) => console.log(error)); + * + * // meeting options (Only available for Android) + * let options = { + * "no_driving_mode":true, + * "no_invite":true, + * "no_meeting_end_message":true, + * "no_titlebar":false, + * "no_bottom_toolbar":false, + * "no_dial_in_via_phone":true, + * "no_dial_out_to_phone":true, + * "no_disconnect_audio":true, + * "no_share":true, + * "no_audio":true, + * "no_video":true, + * "no_meeting_error_message":true + * }; + * + * // Join meeting. + * this.zoomService.joinMeeting(meetingNumber, meetingPassword, displayName, options) + * .then((success: any) => console.log(success)) + * .catch((error: any) => console.log(error)); + * + * // Start an existing meeting for non-login user. + * this.zoomService.startMeetingWithZAK(meetingNumber, displayName, zoomToken, zoomAccessToken, userId, options) + * .then((success: any) => console.log(success)) + * .catch((error: any) => console.log(error)); + * + * // Start an existing meeting for logged in user. + * this.zoomService.startMeeting(meetingNumber, vanityId, options) + * .then((success: any) => console.log(success)) + * .catch((error: any) => console.log(error)); + * + * // Start an instant meeting for logged in user. + * this.zoomService.startInstantMeeting() + * .then((success: anu) => console.log(success)) + * .catch((error: any) => console.log(error)); + * + * // Set language. + * this.zoomService.setLanguage("en-US") + * .then((success: any) => console.log(success)) + * .catch((error: any) => console.log(error)); + * ``` + */ +@Plugin({ + pluginName: 'Zoom', + plugin: 'cordova.plugin.zoom', // npm package name, example: cordova-plugin-camera + pluginRef: 'cordova.plugins.Zoom', // the variable reference to call the plugin, example: navigator.geolocation + repo: 'https://github.com/zoom/zoom-sdk-ionic', // the github repository URL for the plugin + platforms: ['Android', 'iOS'] // Array of platforms supported, example: ['Android', 'iOS'] +}) +@Injectable() +export class Zoom extends IonicNativePlugin { + + /** + * Initialize Zoom SDK. + * @param appKey Zoom SDK app key. + * @param appSecret Zoom SDK app secret. + * @return {Promise} + */ + @Cordova() + initialize(appKey: string, appSecret: string): Promise { return; } + + /** + * Log user in with Zoom username and password. + * @param username user's Zoom username. + * @param password user's Zoom password. + * @return {Promise} + */ + @Cordova() + login(username: string, password: string): Promise { return; } + + /** + * Log user out. + * @return {Promise} true if logout success / false if failed. + */ + @Cordova() + logout(): Promise { return; } + + /** + * Check whether the user is logged in. + * @return {Promise} true if is logged in / false if not. + */ + @Cordova() + isLoggedIn(): Promise { return; } + + /** + * Join a meeting for logged in user. + * @param meetingNo meeting number. + * @param meetingPassword meeting password. + * @param options meeting options. + * @return {Promise>} + */ + @Cordova() + joinMeeting(meetingNo: string, meetingPassword: string, displayName: string, options: any): Promise { return; } + + /** + * Start a meeting for non-login user. + * @param meetingNo meeting number. + * @param displayName display name shown in meeting. + * @param zoomToken zoom token retrieved from Zoom Rest API. + * @param zoomAccessToken zoom access token retrieved from Zoom Rest API. + * @param userId user ID retrieved from Zoom Rest API. + * @param options meeting options. + * @return {Promise} + */ + @Cordova() + startMeetingWithZAK(meetingNo: string, displayName: string, zoomToken: string, zoomAccessToken: string, userId: string, options: any): Promise { return; } + + /** + * Start a meeting for logged in user. + * @param meetingNo meeting number. + * @param options meeting option. + * @return {Promise} + */ + @Cordova() + startMeeting(meetingNo: string, options: any): Promise { return; } + + /** + * Start an instant meeting for logged in user. + * @param options meeting option. + * @return {Promise} + */ + @Cordova() + startInstantMeeting(options: any): Promise { return; } + + /** + * Set language. + * @param languageTag language name. + * @return {Promise} + */ + @Cordova() + setLocale(languageTag: string): Promise { return; } + +}