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

相关文档