ワークスペースのモバイル統合概要
ワークスペースのモバイル統合概要
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 |
