logo
開發者文件
搜尋
工作空間行動端整合概述

工作空間行動端整合概述

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

相關文件