TeamViewer ソフトウェア開発キット (SDK)を使用すると、Assist AR の機能をフルに活用し、自社のモバイルアプリにAR遠隔支援機能を埋め込むことによって、顧客に最高のAR遠隔支援体験を提供することができます。
SDKを使用することで、お客様の端末に安全かつGDPR に準拠した接続を確立することができます。
この記事は、すべての TeamViewer Assist AR ユーザーに適用されます。
APIキーの生成
1. TeamViewer remote またはhttps://login.teamviewer.com/にアクセスし、TeamViewer のアカウントでサインインします。
2. 管理者設定をクリックします。
3. 認証でアプリとトークンをクリックします。
4. プロフィール設定をクリックします。
5. アプリまたはトークンを作成のドロップダウンをクリックし、モバイル SDK を作成を選択します。
6. 名前と説明(任意)を入力します。
7. モバイル SDK システムで iOS を選択します。
8. 保存をクリックします。
アプリとトークンを開くと、モバイル SDK トークンが表示されます。
9. 三点ドットをクリックし、トークンをコピーを選択して、安全な場所に貼り付けます。
重要:このトークンは絶対に他人と共有しないでください。
TeamViewer Mobile SDKを入手する
TeamViewer SDK は、Swift Package Manager(SPM)として、または以下の手順に従って手動でインストールできます。
- TeamViewer SDK を Swift Package Manager としてインストールする
- TeamViewer SDK を手動でインストールする
以下の手順に従って、任意のプロジェクトに TeamViewer SDK を SPM として追加できます。
- プロジェクトを開き、パッケージ依存関係(Package Dependencies)をクリックします。
- 左下にある プラスアイコン をクリックします。
3. 検索バーに SPM パッケージの github リンクを入力します。TeamViewer-AR-iOS の SPM パッケージが結果に表示されます。
4. パッケージの追加をクリックします。
5. このパッケージを依存関係として追加する対象を選択します。
6. パッケージの追加をクリックして確認します。
7. TeamViewer SDK がプロジェクトの依存関係として追加されます。
8. このパッケージは、(ステップ5で選択した)ターゲットにも追加されます。
9. ステップ5でパッケージがターゲットに追加されなかった場合は、前述のようにプラスアイコンをクリックし、パッケージ依存関係を追加を選択することで、SPM パッケージを追加できます。
このとき、パッケージはステップ3で表示された 最近使用したものリストに表示されます。
SDKは、Assist AR Professionalライセンスをお持ちのお客様を対象に、TeamViewer サポートチームから配布されます。
1. zipファイルをダウンロードし、解凍してプロジェクトフォルダ内に含まれるすべてのxcframeworkフォルダをコピーします。
注意: SDK は、iOS arm64 と Simulator x86 の両方のアーキテクチャを含むユニバーサル XCFramework として配布されま す。現在、Apple Silicon および Mac Catalyst アーキテクチャはサポートされていません。さらに、Swift Package Manager(SPM)を使用して配布することも可能です。
2. TVLocalizations と TeamViewerSDK フレームワークをプロジェクトにリンクします。
3.オプションEmbed & Signが選択されていることを確認します。
4. 実装によっては、ARKitやCallKitに対するリンクも必要な場合があります。
5. CallKitをサポートする予定がある場合のみ: CallKitに対してリンクします。
Xcodeプロジェクトのセットアップ
TeamViewer SDK は、リモートサポートのセッション中にカメラとマイクを使用します。
1) Info.Plist ファイルに以下のキーを追加します。
- NSMicrophoneUsageDescription。
- NSCameraUsageDescription (カメラ使用説明)
これらのキーを追加しないと、SDK がマイクまたはカメラにアクセスしようとした瞬間に iOS がアプリケーションを終了します。
TeamViewer SDKの使用
重要:SDKは単一のインスタンスクラスです。直接作成することはできません。共有インスタンスにアクセスする必要があります。
1) 「前提条件」セクションで取得したAPI Keyを使用して SDK インスタンスを初期化します。
2) プロトコル TeamViewerSDKDelegate に準拠するデリゲートを設定します。
これにより、TeamViewer 接続の存続期間中に発生するイベントに対応できるようになります。
3) セッションコードに接続します。
共有SDKは、セッションコードへの接続を確立するためのメソッドを提供します。このセッションコードには、2つのタイプがあります。
- リモートサポートまたは
- Assist AR
4)TeamViewer クライアントまたはTeamViewer REST API 経由でセッションコードを作成します。
connectToSessionCodeメソッドは、TeamViewer セッションを返します。
重要:
- この変数を有効にしておく責任と、この変数を解放する責任があります。これを怠ると、リモート セッションが終了した後でも、セッション UI が有効なままになる可能性があります。
- SDKがセッションコードに接続すると、待機状態になり、デリゲートメソッドhandleSessionCodeOnlineで状態変化の通知を受けます。
この時点で、ユーザーが別のセッション コードに接続することを許可しないでください。 ユーザーが現在の接続を離れることを許可することのみが許可されます。
サポーター側では、セッションコードがオンラインであることが表示され、クライアントがそのセッションコードへの接続を確立できるようになります。
着信接続への対応
SDK は、接続イベントの着信に反応するためのデリゲートメソッドを提供します。
TeamViewer 側で接続が開始されると、SDK はデリゲートメソッドhandleConnectionRequestWithAuthenticationDataを介してこの接続試行について通知されます。
認証データパラメータには、サポーターの名前、着信接続のタイプ(ScreenShare またはAssist AR )、および着信接続を許可または拒否するコールバック関数が含まれます。
着信接続が受け入れられた場合、対応するTeamViewer の接続が確立されます。
- ScreenShare接続の場合、マイクと画面共有のプロンプトがユーザーに表示されます。
アプリケーションのUIはリプレイキットを使用して取得され、ユーザーとサポーターの間には双方向のVoIP通信が行われます。
- Assist AR 接続の場合、カメラとマイクのアクセスに関するシステム権限が表示されます。ユーザーがこれを許可すると、ARセッションが開始されます。ユーザーとサポーターの間には、双方向のVoIP通信が行われます。
- リモートユーザーが接続要求をキャンセルしたときに通知を受け取るには、デリゲートメソッドhandleConnectionRequestAbort を実装する必要があります。ユーザーに表示されるプロンプトをクリアするか、CallKit の着信通知をキャンセルする責任があります。
オプションのSDKイベントへのリアクション
- handleSupporterConnectedこのメソッドは、サポーターがセッションを開始したときに呼び出され、ユーザーがローカルでセッションを開始したときにも呼び出されます。
- handleSupporterDisconnected:このメソッドは、サポーターがセッションを終了したときに呼び出され、ユーザーがローカルでセッションを終了したときにも呼び出されます。
ヒント:この時点でセッションは無効とみなされるため、セッションへの参照を削除する必要があります。
- handleError:このメソッドは、接続の確立に使用されるセッション コードまたは API トークンが有効でない場合に呼び出されます。
ヒント: セッション自体が無効とみなされるため、現在のセッションに使用されているリソースを削除する必要があります。
オプションのセッションイベントへの対応
- handleSessionError: これは、セッション中にエラーが発生したときに呼び出されます。例えば、ある機能が要求されたが、クライアントとサーバーの互換性が保たれていない場合などです。
ヒント: このエラーは情報提供のみを目的としています。 ログファイルに書き込むことができます。
CallKit対応に関する注意事項
アプリケーションがCallKitに対応している場合:
- 通話の一意の識別子に関する情報を TeamViewer SDK に提供します。
- TeamViewer は、実行中の通話があるかどうかをシステムに問い合わせ、その場合はVoIP接続のセットアップを試みません。
- TeamViewer に現在の通話があなたのものであることを伝え、音声パイプラインを引き継ぎ、VoIP送信を開始できるようにします。
- setupCallUUID メソッドを呼び出します。
- clearCallUUID メソッドを呼び出して、通話が終了したことをSDKに知らせます。
バックグラウンドモードの有効化
Info.plistファイルで、これらのバックグラウンド モードの少なくとも 1 つが有効になっていることを確認してください。
- オーディオ
- AirPlayまたは
- ボイスオーバーIPのバックグラウンドモード
重要:これを怠ると、アクティブなTeamViewer セッション中にバックグラウンドに置かれた後、わずか数秒でアプリが中断されます。
オーディオの設定
モバイルSDKは、デフォルトの AVAudioSession 構成値で動作します。
- Bluetooth、Airplay mix、ラウドスピーカーの使用などをサポートするためにこれらの値を上書きしたい場合は、セッションが確立される前に必ずこれを変更してください。アプリケーションが他のアプリケーションをミュートする場合、オーディオセッションを設定するタイミングは、接続を受け入れる直前が推奨されます。
- アプリケーションのオーディオが他のアプリケーションと混信する場合、アプリケーション起動時に音声オプションを設定することができます。
VoIPを無効にする
音声通信を確立するために他の手段を使用したい場合、接続を確立する前に共有SDKインスタンスでオプションを設定することにより、VoIP機能を完全に無効にすることができます。
詳しくは、TVSDKOptionsのドキュメントを参照してください。
クラス文書
全ての公開ヘッダーはドキュメント化されています。各クラスの詳細については、Xcodeが生成するQuickHelpコンテンツ('⌥ '+定数名または変数名をクリック)を参照してください。