ภาพรวมการผสานรวมพื้นที่ทำงานบนมือถือ
ภาพรวมการผสานรวมพื้นที่ทำงานบนมือถือ
GPTBots รองรับการผสานรวมพื้นที่ทำงานเข้ากับ APP บนมือถือขององค์กรทั้งหมด โดยการทำให้ผู้ใช้ในองค์กรใช้งานพื้นที่ทำงานได้โดยไม่ต้องเข้าสู่ระบบ เพื่ออำนวยความสะดวกให้พนักงานขององค์กรใช้งานพื้นที่ทำงาน การผสานรวมใช้วิธี WebView + H5 Bridge ซึ่งรองรับทั้ง Android และ iOS
WebViewBridge เป็นอินเทอร์เฟซ Bridge ที่ใช้สำหรับการสื่อสารสองทิศทางระหว่างแอปพลิเคชันเนทีฟกับหน้า H5 มันมอบโปรโตคอลและเมธอดการสื่อสารที่เป็นมาตรฐานเดียวกัน ทำให้โค้ดเนทีฟและหน้า H5 สามารถเรียกใช้ซึ่งกันและกันและส่งข้อมูลระหว่างกันได้อย่างสะดวก
สถาปัตยกรรมการผสานรวม
┌──────────────┐ WebViewBridge ┌──────────────────┐
│ 企业移动 APP │ ◄────────────────► │ 工作空间 H5 页面 │
│(Android/iOS) │ │ (React + Vite) │
└──────────────┘ └──────────────────┘
│ │
│ AiToken 签发 │ 解析 AiToken
│ (RSA 加密) │ 免登录进入
▼ ▼
┌──────────────────────────────────────────────────┐
│ GPTBots 后端服务 │
│ (Spring Boot + MongoDB + Redis) │
└──────────────────────────────────────────────────┘
┌──────────────┐ WebViewBridge ┌──────────────────┐
│ 企业移动 APP │ ◄────────────────► │ 工作空间 H5 页面 │
│(Android/iOS) │ │ (React + Vite) │
└──────────────┘ └──────────────────┘
│ │
│ AiToken 签发 │ 解析 AiToken
│ (RSA 加密) │ 免登录进入
▼ ▼
┌──────────────────────────────────────────────────┐
│ GPTBots 后端服务 │
│ (Spring Boot + MongoDB + Redis) │
└──────────────────────────────────────────────────┘
บล็อกโค้ดนี้ในหน้าต่างลอย
ขั้นตอนการผสานรวม
| ขั้นตอน | คำอธิบาย | เอกสารรายละเอียด |
|---|---|---|
| 1. รับ Public Key | รับ RSA Public Key ในการตั้งค่าพื้นที่ → การผสานรวม | การเข้ารหัส AiToken |
| 2. ออก AiToken | ใช้ Public Key เข้ารหัสอีเมลของสมาชิก ต่อกับ Project ID แล้วเข้ารหัสแบบ Base64 | การเข้ารหัส AiToken |
| 3. เปิด URL เฉพาะ | ต่อ AiToken เข้ากับ URL การผสานรวมพื้นที่ทำงาน | เอกสารนี้ |
| 4. การเชื่อมต่อฝั่งเนทีฟ | ผสานรวม WebView ฝั่ง Android หรือ iOS และตั้งค่าสิทธิ์ | การผสานรวม Android / การผสานรวม iOS |
| 5. การสื่อสารผ่าน Bridge | ใช้งาน JSBridge / WKScriptMessageHandler | การผสานรวม Android / การผสานรวม iOS |
URL การเข้าถึงพื้นที่ทำงาน
เมื่อพนักงานขององค์กรเข้าถึงพื้นที่ทำงานผ่านฝั่ง APP ควรเปิดที่อยู่พื้นที่ทำงานในฐานะพนักงานขององค์กร กฎการสร้างที่อยู่การเข้าถึงมีดังนี้:
https://gptbots.ai/space/h5/home?AiToken={加密AiToken}&hideClose=true
https://gptbots.ai/space/h5/home?AiToken={加密AiToken}&hideClose=true
บล็อกโค้ดนี้ในหน้าต่างลอย
{加密AiToken}: AiToken ที่เข้ารหัสด้วย RSA Public Key แล้ว ซึ่งประกอบด้วยID ขององค์กรและอีเมลบัญชีของพนักงานhideClose: พารามิเตอร์เสริม หากตั้งค่าเป็นtrueจะซ่อนปุ่ม「ปิด」ในหน้า webview
พฤติกรรมของพารามิเตอร์ hideClose
- ค่าเริ่มต้น (ไม่ส่งหรือ
false): แสดงปุ่ม「ปิด」ในหน้า เมื่อคลิกจะส่งข้อความแจ้งเตือนการดำเนินการปิดผ่าน WebViewBridge - ตั้งค่าเป็น
true: ซ่อนปุ่มปิด APP ควบคุมวงจรชีวิตของ WebView ด้วยตนเอง
JSON ข้อความการดำเนินการปิด:
{
"eventType": "click",
"data": {
"value": "close",
"timestamp": 1776921208476,
"extendedData": {}
}
}
{
"eventType": "click",
"data": {
"value": "close",
"timestamp": 1776921208476,
"extendedData": {}
}
}
บล็อกโค้ดนี้ในหน้าต่างลอย
eventType: สตริง แสดงประเภทของเหตุการณ์ ใช้ระบุการเรียกใช้ฟังก์ชันที่แตกต่างกันdata: อ็อบเจ็กต์ JSON ประกอบด้วยข้อมูลพารามิเตอร์ที่เกี่ยวข้องกับเหตุการณ์ สามารถมีฟิลด์ที่แตกต่างกันได้ตาม eventType ที่ต่างกัน
ตารางประเภทเหตุการณ์
| ประเภทเหตุการณ์ | ค่าคงที่ | คำอธิบาย | พารามิเตอร์ |
|---|---|---|---|
click |
EVENT_CLICK | เหตุการณ์การคลิกในหน้า webview | data: ข้อมูลเพิ่มเติม (เสริม) รูปแบบ JSON โดยค่าเริ่มต้นมีฟิลด์ value (ประเภทเหตุการณ์ เช่น "click"), timestamp (Timestamp หน่วยเป็นมิลลิวินาที) |
message |
EVENT_MESSAGE | เหตุการณ์ข้อความในหน้า webview | data: ข้อมูลเพิ่มเติม (เสริม) รูปแบบ JSON โดยค่าเริ่มต้นมีฟิลด์ value (ประเภทเหตุการณ์ เช่น "message"), timestamp (Timestamp หน่วยเป็นมิลลิวินาที) |
โปรเจกต์ DEMO
GPTBots มี DEMO การผสานรวมพื้นที่ทำงานบนมือถือแบบครบถ้วน:
| แพลตฟอร์ม | Repository |
|---|---|
| Android | android-webview-bridge |
| iOS | ios-webview-bridge |
