ทำแอปประชุม online ด้วย Zoom SDK และ Ionic mobile framework
เมื่อสองสามวันก่อน มีลูกค้ารายหนึ่ง มาปรึกษาว่า เค้าต้องการจะใช้ Wowza Video streaming server มาทำเป็น Online conference แต่เนื่องจากเค้าทำอย่างไรก็ยัง delay อยู่ประมาณ 5 วินาที แต่ความต้องการของลูกค้าเค้าอยากให้การตอบสนองเหมือน Zoom เลย
ผมก็เลยไปหาดูว่า Zoom มี API อะไรไหม ก็ได้ไปเจอ https://ionicframework.com/docs/native/zoom
เป็น Cordova plugin ที่ติดต่อกับ Zoom Video Conference service
import { Push, PushObject, PushOptions } from '@ionic-native/push/ngx';
constructor(private push: Push) { }
...
// to check if we have permission
this.push.hasPermission()
.then((res: any) => {
if (res.isEnabled) {
console.log('We have permission to send push notifications');
} else {
console.log('We do not have permission to send push notifications');
}
});
// Create a channel (Android O and above). You'll need to provide the id, description and importance properties.
this.push.createChannel({
id: "testchannel1",
description: "My first test channel",
// The importance property goes from 1 = Lowest, 2 = Low, 3 = Normal, 4 = High and 5 = Highest.
importance: 3,
//badge is used to if badge appears on the app icon see https://developer.android.com/reference/android/app/NotificationChannel.html#setShowBadge(boolean).
//false = no badge on app icon.
//true = badge on app icon
badge: false
}).then(() => console.log('Channel created'));
// Delete a channel (Android O and above)
this.push.deleteChannel('testchannel1').then(() => console.log('Channel deleted'));
// Return a list of currently configured channels
this.push.listChannels().then((channels) => console.log('List of channels', channels))
// to initialize push notifications
const options: PushOptions = {
android: {},
ios: {
alert: 'true',
badge: true,
sound: 'false'
},
windows: {},
browser: {
pushServiceURL: 'http://push.api.phonegap.com/v1/push'
}
}
const pushObject: PushObject = this.push.init(options);
pushObject.on('notification').subscribe((notification: any) => console.log('Received a notification', notification));
pushObject.on('registration').subscribe((registration: any) => console.log('Device registered', registration));
pushObject.on('error').subscribe(error => console.error('Error with Push plugin', error));
สามารถไปดูรายละเอียดได้ตาม link ข้างบน ทำไมถึงต้องทำแบบนี้ให้ดูยุ่งยากด้วย คำตอบคือลูกค้าต้องการที่จะต้องการนำ content อื่นมาใส่ไว้ใน app และใน app จะต้องมี meeting room และต้องการควบคุมการเข้าถึงของผู้เข้าฟัง meeting นั้นๆ
Related Posts
- CeleryとRabbitMQの連携方法: 総合的な概要
- วิธีการทำงานร่วมกันระหว่าง Celery และ RabbitMQ: ภาพรวมที่ครอบคลุม
- How Celery and RabbitMQ Work Together: A Comprehensive Overview
- วิธีเริ่มต้นโครงการ Django ด้วย Vim, Docker Compose, MySQL, และ Bootstrap
- How to Start a Django Project with Vim, Docker Compose, MySQL, and Bootstrap
- OCPPシステムをゼロから構築するための包括的ガイド
- ทำไมการเข้าใจ Design Pattern จึงสำคัญสำหรับโครงการขนาดใหญ่เช่น Odoo
- なぜOdooのような大規模プロジェクトでデザインパターンを理解する必要があるのか
- Why Understanding Design Patterns is Essential in Large Projects Like Odoo
- ระบบเฟอร์ทิเกชันอัตโนมัติในเกษตรกรรมสมัยใหม่
Articles
- CeleryとRabbitMQの連携方法: 総合的な概要
- วิธีการทำงานร่วมกันระหว่าง Celery และ RabbitMQ: ภาพรวมที่ครอบคลุม
- How Celery and RabbitMQ Work Together: A Comprehensive Overview
- วิธีเริ่มต้นโครงการ Django ด้วย Vim, Docker Compose, MySQL, และ Bootstrap
- How to Start a Django Project with Vim, Docker Compose, MySQL, and Bootstrap
- ออกแบบและปรับปรุงเว็บไซต์ให้มีประสิทธิภาพ: คู่มือสำหรับเจ้าของธุรกิจและผู้จัดการไอที
- ウェブサイトをデザインし最適化する: 事業主とITマネージャー向けの包括的ガイド
- Design and Optimize Your Website: A Comprehensive Guide for Business Owners and IT Managers
- 音声の明瞭さを向上させる: ミュージシャンとサウンドエンジニアのためのガイド
- การเพิ่มความชัดเจนของเสียง: คู่มือสำหรับนักดนตรีและวิศวกรเสียง
- Unlocking Clarity in Audio: A Guide for Musicians and Sound Engineers
- AIツール(ChatGPT)の効果的な使い方
- วิธีทำงานกับ AI อย่างมีประสิทธิภาพ เช่น ChatGPT
- How to Work Effectively with AI Like ChatGPT
- データ駆動型インサイトで観光を向上させる方法:日本から学ぶ
- การใช้ข้อมูลเพื่อพัฒนาการท่องเที่ยว: เรียนรู้จากญี่ปุ่น
- How Data-Driven Insights Can Improve Tourism: Lessons from Japan
- 数字孪生:如何革新尖竹汶府的旅游业
- ดิจิทัลทวิน: การปฏิวัติการท่องเที่ยวจันทบุรี
- How Digital Twins Can Revolutionize Chanthaburi Tourism
Our Products
Related Posts
- CeleryとRabbitMQの連携方法: 総合的な概要
- วิธีการทำงานร่วมกันระหว่าง Celery และ RabbitMQ: ภาพรวมที่ครอบคลุม
- How Celery and RabbitMQ Work Together: A Comprehensive Overview
- วิธีเริ่มต้นโครงการ Django ด้วย Vim, Docker Compose, MySQL, และ Bootstrap
- How to Start a Django Project with Vim, Docker Compose, MySQL, and Bootstrap
- OCPPシステムをゼロから構築するための包括的ガイド
- ทำไมการเข้าใจ Design Pattern จึงสำคัญสำหรับโครงการขนาดใหญ่เช่น Odoo
- なぜOdooのような大規模プロジェクトでデザインパターンを理解する必要があるのか
- Why Understanding Design Patterns is Essential in Large Projects Like Odoo
- ระบบเฟอร์ทิเกชันอัตโนมัติในเกษตรกรรมสมัยใหม่
Articles
- CeleryとRabbitMQの連携方法: 総合的な概要
- วิธีการทำงานร่วมกันระหว่าง Celery และ RabbitMQ: ภาพรวมที่ครอบคลุม
- How Celery and RabbitMQ Work Together: A Comprehensive Overview
- วิธีเริ่มต้นโครงการ Django ด้วย Vim, Docker Compose, MySQL, และ Bootstrap
- How to Start a Django Project with Vim, Docker Compose, MySQL, and Bootstrap
- ออกแบบและปรับปรุงเว็บไซต์ให้มีประสิทธิภาพ: คู่มือสำหรับเจ้าของธุรกิจและผู้จัดการไอที
- ウェブサイトをデザインし最適化する: 事業主とITマネージャー向けの包括的ガイド
- Design and Optimize Your Website: A Comprehensive Guide for Business Owners and IT Managers
- 音声の明瞭さを向上させる: ミュージシャンとサウンドエンジニアのためのガイド
- การเพิ่มความชัดเจนของเสียง: คู่มือสำหรับนักดนตรีและวิศวกรเสียง
- Unlocking Clarity in Audio: A Guide for Musicians and Sound Engineers
- AIツール(ChatGPT)の効果的な使い方
- วิธีทำงานกับ AI อย่างมีประสิทธิภาพ เช่น ChatGPT
- How to Work Effectively with AI Like ChatGPT
- データ駆動型インサイトで観光を向上させる方法:日本から学ぶ
- การใช้ข้อมูลเพื่อพัฒนาการท่องเที่ยว: เรียนรู้จากญี่ปุ่น
- How Data-Driven Insights Can Improve Tourism: Lessons from Japan
- 数字孪生:如何革新尖竹汶府的旅游业
- ดิจิทัลทวิน: การปฏิวัติการท่องเที่ยวจันทบุรี
- How Digital Twins Can Revolutionize Chanthaburi Tourism