共同編集の統合
Univer エディターを共同編集サービスに接続し、同じドキュメントを複数のユーザーで編集します。
共同編集はブラウザーのエディターを共有ドキュメントサービスに接続します。例えば、2 人が同じスプレッドシートを開くと、一方のブラウザーでの編集が他方にも表示されます。
サーバー統合に従ってバックエンドを準備し、以下の手順でエディターと読み込みを設定します。共同編集クイックスタートの Server と Web のコードを対にして確認してください。
既存エディターへの接続
既存の Web SDK エディターはそのまま使います。クイックスタートのブラウザー設定に従い、共同編集プラグインと、読み込み・変更送信・WebSocket のアドレスを設定します。ブラウザーとサーバーのパッケージバージョンに互換性を持たせてください。
サンプルの固定ユーザーとデフォルトの権限はデモ用です。実際のリクエストにはログイン資格情報を含め、バックエンドで ID とドキュメントへのアクセスを検証してください。ライセンスについてはライセンス設定を参照してください。
同じドキュメントの作成と表示
作成と表示は別の操作です。
- ユーザーがドキュメントを作成すると、バックエンドが保存して ID を返します。
- ブラウザーはその ID を読み込みます。再度開く場合や他のユーザーと共有する場合も同じ ID を使います。
API の unitId がこのドキュメント ID です。アクセスするたびに新しいローカルの空ドキュメントを作成しないでください。
文書を読み込む前に現在のユーザーを設定してください。現在のユーザーは共同編集の身元とローカルのオフラインキャッシュの所有者を決めます。設定方法は本人確認と認可を参照してください。
例えば、Sheets と共同編集プラグインの登録後、サーバー上のスプレッドシートを読み込みます。
import { UserManagerService } from '@univerjs/core'import '@univerjs-pro/collaboration-client/facade'univer.__getInjector().get(UserManagerService).setCurrentUser({ userID, name, avatar })const workbook = await univerAPI.getCollaboration().loadSheetAsync('your-document-id')if (!workbook) throw new Error('Document could not be loaded')現在のバージョンの UniverCollaborationClientUIPlugin は、起動時に URL の unit と type クエリを読んで文書を自動的に読み込みます。この動作は非推奨で、今後のバージョンで削除されます。初期化時に enableUrlUnitLoader: false を設定して無効にし、上記の方法で明示的に読み込んでください。プラグインとプリセットの設定例は文書を読み込むを参照してください。
製品別の読み込みは Sheets、Docs、Slides、Boards、Bases、PDFs を参照してください。対象製品とバックエンドのリリースでの対応を確認します。
同期、保存、権限の検証
通常のウィンドウとプライベートウィンドウなど、独立した 2 つのセッションで同じドキュメントを開きます。一方で編集して他方を確認し、再読み込み、再接続、サーバー再起動後も内容を確認します。
編集者、閲覧者、権限のないユーザーでテストしてください。読み取り専用 UI はページ操作を制御しますが、サーバーでも未許可の読み取りや変更を拒否する必要があります。
読み込みはできても編集が同期されない場合は WebSocket 接続を確認します。再起動で内容が消える場合はバックエンドのストレージを確認します。設定はサーバー統合を参照してください。
ファイル交換、コメント、履歴の追加
取り込んだファイルを共同編集するには、変換後のデータから共同編集ドキュメントを作成します。ファイル交換の統合を参照してください。コメントと履歴には専用のプラグイン、サービス、権限が必要です。Office 拡張モジュールに従ってください。
履歴パネルの設定は Sheets、Docs、Slides、Boards、Bases を参照してください。PDFs の現在の対応範囲は PDFs の履歴に記載されています。
このガイドはいかがですか?