TeamViewer ソフトウェア開発キット (SDK)を使用すると、Assist AR の機能をフルに活用し、自社のモバイルアプリにAR遠隔支援機能を埋め込むことによって、顧客に最高のAR遠隔支援体験を提供することができます。

SDKを使用することで、お客様の端末に安全かつGDPR に準拠した接続を確立することができます。

この記事は、すべての TeamViewer Assist AR ユーザーに適用されます。

前提条件

  • iOS 14.1以上
  • 既存のTeamViewer アカウント

TeamViewer のアカウントをお持ちでない方は、以下の手順でアカウントを作成してください。

  1. https://login.teamviewer.com/にアクセスし、Sign Upをクリックします。
  2. アカウントを作成し、メールアドレスを確認するためのステップを完了します。

APIキーの生成

1)https://login.teamviewer.com/にアクセスし、TeamViewer のアカウントでサインインします。

2)ページ下部の「Apps」をクリックします。

3)「アプリ作成」ボタンをクリックします。

4)Mobile SDK Tokenを有効化し、名前を入力し、(オプションで)簡単な説明を追加します。

5)iOSを起動します。

6)「作成」をクリックします。

作成したアプリを開くと、トークンが表示されます。

このトークンをクリップボードにコピーして、安全な場所に貼り付けてください。

🚨重要:このトークンは誰とも共有しないでください!

TeamViewer Mobile SDKを入手する

TeamViewer Mobile SDK をインストールするには、2つの方法があります。

A.CocoaPods経由でTeamViewer Mobile SDKをインストールする

TeamViewer SDKを入手する最も簡単な方法は、CocoaPodsを使用することです。SDK をプロジェクトに追加するには、これを Pod ファイルに追加します。

platform :ios, '12.0'
target YOUR_TARGET do
  use_frameworks!
  pod 'TeamViewerSDK'
end

B.手動でインストールする

1) SDKは、Assist AR Professionalライセンスをお持ちのお客様を対象に、TeamViewer サポートチームから配布されます。

2) zipファイルをダウンロードし、解凍してプロジェクトフォルダ内に含まれるすべてのxcframeworkフォルダをコピーします。

📌注意: SDK は、iOS arm64 と Simulator x86 の両方のアーキテクチャを含むユニバーサル XCFramework として配布されま す。現在、Apple Silicon および Mac Catalyst アーキテクチャはサポートされていません。

3) TVLocalizations と TeamViewerSDK フレームワークをプロジェクトにリンクします。

4)オプション「Embed & Sign」が選択されていることを確認します。

5) 実装によっては、ARKitやCallKitに対するリンクも必要です。

6)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送信を開始できるようにします。
    1. setupCallUUID メソッドを呼び出します。
    2. clearCallUUID メソッドを呼び出して、通話が終了したことをSDKに知らせます

バックグラウンドモードの有効化

Info.plistファイルで、これらのバックグラウンド モードの少なくとも 1 つが有効になっていることを確認してください。

  • オーディオ
  • AirPlayまたは
  • ボイスオーバーIPのバックグラウンドモード

🚨重要:これを怠ると、アクティブなTeamViewer セッション中にバックグラウンドに置かれた後、わずか数秒でアプリが中断されます。

オーディオの設定

モバイルSDKは、デフォルトの AVAudioSession 構成値で動作します。

  • Bluetooth、Airplay mix、ラウドスピーカーの使用などをサポートするためにこれらの値を上書きしたい場合は、セッションが確立される前に必ずこれを変更してください。アプリケーションが他のアプリケーションをミュートする場合、オーディオセッションを設定するタイミングは、接続を受け入れる直前が推奨されます。
  • アプリケーションのオーディオが他のアプリケーションと混信する場合、アプリケーション起動時に音声オプションを設定することができます。

VoIPを無効にする

音声通信を確立するために他の手段を使用したい場合、接続を確立する前に共有SDKインスタンスでオプションを設定することにより、VoIP機能を完全に無効にすることができます。

詳しくは、TVSDKOptionsのドキュメントを参照してください。

クラス文書

全ての公開ヘッダーはドキュメント化されています。各クラスの詳細については、Xcodeが生成するQuickHelpコンテンツ('⌥ '+定数名または変数名をクリック)を参照してください。