工作空間行動端整合概述
工作空間行動端整合概述
GPTBots 支援將工作空間整體整合到企業的行動端 APP 中,透過實現企業使用者免登入使用工作空間,以方便企業員工使用工作空間。整合採用 WebView + H5 橋接 的方式,支援 Android 和 iOS 兩端。
WebViewBridge 是一個用於原生應用與 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. 取得公鑰 | 在空間設定 → 整合中取得 RSA 公鑰 | AiToken 加密 |
| 2. 簽發 AiToken | 使用公鑰加密成員信箱,拼接專案 ID 後再 Base64 編碼 | AiToken 加密 |
| 3. 開啟專屬 URL | 將 AiToken 拼接到工作空間整合 URL 中 | 本文件 |
| 4. 原生端接入 | Android 或 iOS 端整合 WebView 並設定權限 | Android 整合 / iOS 整合 |
| 5. 橋接通訊 | 實現 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}:透過 RSA 公鑰加密後的 AiToken,包含了組織 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(時間戳,單位毫秒) |
message |
EVENT_MESSAGE | webview 頁面訊息事件 | data:附加資料(可選)JSON 格式,預設包含欄位 value(事件類型,如 "message")、timestamp(時間戳,單位毫秒) |
DEMO 專案
GPTBots 提供了完整的行動端工作空間整合 DEMO:
| 平台 | 儲存庫 |
|---|---|
| Android | android-webview-bridge |
| iOS | ios-webview-bridge |
