ننقل الطلاب إلى udalenka في يوم واحد

صورة

في وقت مبكر من 16 مارس ، كنا نجلس في مكان مفتوح مريح ، وفي اليوم التالي انتقل المكتب بأكمله إلى مكان بعيد ، في المنزل. على حب يكفي قصص مماثلة بما فيه الكفاية. لكن تفاصيل وضعنا ليست نقل الموظفين ، بل نقل العملاء. هؤلاء هم أكثر من ثلاثة آلاف طالب جاءوا للدراسة بدوام كامل ، ولكن من ناحية انتهى في المراسلات.

ما تم إنجازه


قام قسم تدريب المعلمين بإعداد إرشادات للمحاضرات عبر الإنترنت. على سبيل المثال ، مثل:

مدة الفصل
- 4 ., , (30-40 ), .

- 8 . ( ), ( , , , ).

, , .

تركيز الانتباه
, – , , . : , 15-20 , , .

(10-12 ). (30+ ), «» , , 2 . 2 . – .

سقط عمل ضخم على موظفي الخط الأول والثاني من الدعم. فجأة ، ظهرت الآلاف من أجهزة المستخدمين الشخصية على الدعم ، حيث كان من الضروري المساعدة في تثبيت البرامج الضرورية ، وإصدار التراخيص لبرامج معينة ، وفجأة ، لا يعمل Zoom في شبه جزيرة القرم (الذي تمكن من المغادرة هناك) ، أوبرا بمساعدة VPN مدمجة.

تم اختيار Zoom كمنصة رئيسية.

في البداية ، نشأ السؤال مع تخطيط الفصول الدراسية ، وإنشاء المؤتمرات وإعلام جميع الطلاب والمعلمين.

صورة

هذا ما بدا عليه جدول محاضرات Zoom في الأيام القليلة الأولى. حيث تم إنشاء جميع المؤتمرات يدويًا

صورة

وهكذا ، عندما بدأ مرة أخرى في 1s.

بفضل زميلي أنه دخن على الفور واجهة برمجة تطبيقات Zoom وفكّر الإنشاء التلقائي للمؤتمر وفقًا للجدول الزمني. وكذلك المعلومات الذاتية حول ذلك.

وهنا رابط لأعمال سيرجي حول كيفية إنشاء المؤتمرات باستخدام واجهة برمجة تطبيقات Zoom.

أنا ، بدوره ، أرغب في مشاركة الخبرة بشأن تكامل النظام الأساسي في تطبيق Android.
في حالة مستخدمنا ، تبين أن هذا مناسب جدًا ، لأنه يتم إنشاء المؤتمرات على الخادم ويتم نقل معرفاتها إلى الجدول الزمني على الهاتف.

صورة

واجهة جدولة مدمجة مع Zoom

Now دعنا نرى كيف يعمل.
كود المصدر

1. استيراد مكتبتين من SDK : commonlib و mobilertc. ربما هذه هي المرحلة الأكثر حزنا ، لأنه التطبيق الخاص بك يصبح أثقل 80 ميغا بايت.

2. ننفذ InitAuthSDKCallback أو MeetingServiceListener في نشاطنا أو جزءنا. لكي يعمل التكبير / التصغير ، يلزم وجود حد أدنى لواجهة برمجة التطبيقات يبلغ 21 (يُشار إلى minSdkVersion 16 في الوثائق الموجودة على الموقع ، ولكن لا يتم تحديثه بسرعة كبيرة ، فمن الأفضل التركيز على الأمثلة في العينات الواردة من SDK).

عند إنشاء جزء ، قم بتهيئة SDK

تهيئة Zoom SDK
private View view;
private ZoomSDK mZoomSDK;
@Override
public View onCreateView(
            LayoutInflater inflater, ViewGroup container,
            Bundle savedInstanceState) {
        view = inflater.inflate(R.layout.fragment_first, container, false);

        mZoomSDK = ZoomSDK.getInstance();
        if (mZoomSDK.isLoggedIn()) {
            getActivity().onBackPressed();
            return null;
        }

        InitAuthSDKHelper.getInstance().initSDK(getContext(), this);
        if (mZoomSDK.isInitialized()) {

            ZoomSDK.getInstance().getMeetingService().addListener(this);
            ZoomSDK.getInstance().getMeetingSettingsHelper().enable720p(true);
        }

        return view;
}


للقيام بذلك ، قم بإنشاء فئة InitAuthSDKHelper واستدعاء الوظيفة:

initSDK
public void initSDK(Context context, InitAuthSDKCallback callback) {
        if (!mZoomSDK.isInitialized()) {
            mInitAuthSDKCallback = callback;

            ZoomSDKInitParams initParams = new ZoomSDKInitParams();
//            initParams.jwtToken = SDK_JWTTOKEN;
            initParams.appKey = SDK_KEY;
            initParams.appSecret = SDK_SECRET;
            initParams.enableLog = true;
            initParams.logSize = 50;
            initParams.domain = WEB_DOMAIN;
            initParams.videoRawDataMemoryMode = ZoomSDKRawDataMemoryMode.ZoomSDKRawDataMemoryModeStack;
            mZoomSDK.initialize(context, this, initParams);
        }
}


هنا ننتبه إلى المعلمات التالية:

appKey و appSecret - هذا هو المعرف والمفتاح السري لتطبيقك الذي تقوم بإنشائه على موقع الزوم (يستغرق حوالي دقيقة واحدة) ، مسجل كمطور.

من الناحية العملية ، يُنصح بشدة باستخدامها لتحديد الهوية.
بدلاً من ذلك ، يجب عليك استخدام المعلمة jwtToken ، كما هو مكتوب هنا .

اتصال المؤتمر
private AutoCompleteTextView idMeeting;
private AutoCompleteTextView idDisplayName;

private void onClickJoin() {
        if(!mZoomSDK.isInitialized())
        {
            Toast.makeText(getContext(),"ZoomSDK has not been initialized 
            successfully",Toast.LENGTH_SHORT).show();
            InitAuthSDKHelper.getInstance().initSDK(getContext(), this);
            return;
        }

if (ZoomSDK.getInstance().getMeetingSettingsHelper().isCustomizedMeetingUIEnabled()) {
   ZoomSDK.getInstance().getSmsService().enableZoomAuthRealNameMeetingUIShown(false);
} else {
   ZoomSDK.getInstance().getSmsService().enableZoomAuthRealNameMeetingUIShown(true);
}

        String number = idMeeting.getText().toString();
        String name = idDisplayName.getText().toString();

        JoinMeetingParams params = new JoinMeetingParams();
        params.meetingNo = number;
        params.displayName = name;
        ZoomSDK.getInstance().getMeetingService().joinMeetingWithParams(getContext(), params);
}


صورة

يستخدم هذا التطبيق الواجهة الأصلية. لكن إمكانية التخصيص مدعومة.

الموجودات


  1. يمكن نقل عملية التدريب (باستثناء الحالات التي تتطلب ورش عمل ومعدات خاصة) عبر الإنترنت.
  2. من المهم اتباع نهج مركز ومنهجي للقضاء على حديقة أدوات الاتصال التي سيستخدمها كل مدرس.
  3. إذا كانت عملية التدريب في الواجهة الخلفية قد تم إنشاؤها سابقًا ، فلن يستغرق إدخال المؤتمرات في تطبيق الهاتف المحمول الكثير من الوقت.

All Articles