Alibaba Cloud Workspace Web SDK は、Elastic Desktop Service (EDS) のクラウドコンピューター、クラウドアプリケーション、クラウドフォンに接続するために使用できる Web クライアント用のオープン API を提供します。Web SDK を統合することで、必要に応じて Web クライアントを迅速にカスタマイズおよび構築できます。
クイックスタート
SDK とデモのダウンロード
このプラットフォーム上のすべてのドキュメント、SDK、およびクライアントプログラムは、個人または企業での使用のみを目的としています。Alibaba Cloud の同意なしに第三者に配布しないでください。
SDK パッケージには 3 つのファイルが含まれています:
├── WuyingWebDemo.html // サンプルページ
├── WuyingWebSDK.js // SDK API ファイル — フロントエンドページでこれを参照します
└── sdk/
└── ASP/
└── container.html // iframe 埋め込みリソースデモの実行
Vue プロジェクト (Web.SDK.Demo)
Node.js がインストールされていることを確認します:
nodeWelcome to Node.jsが表示された場合、Node.js はインストールされています。そうでない場合は、続行する前に Node.js をインストールしてください。プロジェクトのルートに移動します:
cd <ProjectRootPath>依存関係をインストールします:
npm iプロジェクトを開始します:
npm run devプロジェクトが開始されると、コマンドはアクセス可能な URL を返します。
静的 HTML デモ (WuyingWebDemo.html)
HTML ファイルを含むディレクトリに移動します:
cd <HTMLPath>ローカル HTTP サーバーを起動します:
python3 -m http.serverブラウザで
http://localhost:8000/WuyingWebDemo.htmlを開きます。
統合フロー
統合は 4 つのステップで行われます:
接続認証情報の取得 — 適切な API を呼び出して、チケット、authCode、または loginToken を取得します。下記の認証方式をご参照ください。
セッションの初期化 — 認証情報とインスタンスパラメーターを指定して
Wuying.WebSDK.createSession()を呼び出します。接続の開始 —
session.start()を呼び出して、クラウドフォンへの接続を確立します。イベントの処理 —
session.addHandle()を介してコールバックを登録し、接続、切断、およびランタイムイベントに応答します。
認証方式
2 つの認証方式が利用可能です。使用する方式によって、userInfo で渡す認証情報が決まります。
| 方式 | 認証情報 | 取得方法 |
|---|---|---|
| 権限付与なしのログイン (独自のユーザーシステム) | authCode | GetAuthCode |
| 簡便アカウントでのログイン (Alibaba Cloud Workspace ユーザーシステム) | loginToken | GetLoginToken |
| 直接チケット (SDK v1.4.7 以降) | ticket | 上記のいずれかの方法で取得し、直接渡します |
以下のフローチャートは、完全なチケット取得フローを示しています:
完全な統合のウォークスルーについては、「クラウドフォン統合のベストプラクティス」をご参照ください:
ライフサイクル API
セッションの初期化と作成
Wuying.WebSDK.createSession(id, sessionParams) を呼び出してセッションオブジェクトを作成します。
| パラメーター | 型 | 必須 | 説明 |
|---|---|---|---|
id | string | はい | 定数です。クラウドフォンの場合は常に 'appstream' を渡します。 |
sessionParams | SessionParam | はい | セッション構成です。SessionParam をご参照ください。 |
以下の例は、3 つすべての認証方式を示しています。すべての例で、クラウドフォンに必要な connectType: 'app' と osType: 'Android' を使用しています。
チケットの使用 (SDK v1.4.7 以降、直接接続に推奨):
var userInfo = {
ticket: 'xxx',
};
var appInfo = {
osType: 'Android', // 必須
appId: 'android',
appInstanceId: 'ai-xxxxxx', // インスタンス ID、ai- で始まります
productType: 'AndroidCloud',
connectionProperties: JSON.stringify({ authMode: 'Session' }),
};
var sessionParam = {
openType: openType,
iframeId: 'sessionIframe',
resourceType: 'local',
connectType: 'app',
userInfo: userInfo,
appInfo: appInfo,
};
var wuyingSdk = Wuying.WebSDK;
session = wuyingSdk.createSession('appstream', sessionParam);authCode の使用 (権限付与なしのログイン):
var userInfo = {
sessionId: sessionId,
authCode: authCode,
};
var appInfo = {
osType: 'Android', // 必須
appId: 'android',
resourceId: 'p-xxxxxx', // PersistentAppInstanceId、p- で始まります
productType: 'AndroidCloud',
connectionProperties: JSON.stringify({ authMode: 'Session' }),
};
var sessionParam = {
openType: openType,
iframeId: 'sessionIframe',
resourceType: 'local',
connectType: 'app',
userInfo: userInfo,
appInfo: appInfo,
};
var wuyingSdk = Wuying.WebSDK;
session = wuyingSdk.createSession('appstream', sessionParam);loginToken の使用 (簡便アカウントでのログイン):
var userInfo = {
sessionId: sessionId,
loginToken: loginToken,
};
var appInfo = {
osType: 'Android', // 必須
appId: 'android',
resourceId: 'p-xxxxxx', // PersistentAppInstanceId、p- で始まります
productType: 'AndroidCloud',
connectionProperties: JSON.stringify({ authMode: 'Session' }),
};
var sessionParam = {
openType: openType,
iframeId: 'sessionIframe',
resourceType: 'local',
connectType: 'app',
userInfo: userInfo,
appInfo: appInfo,
};
var wuyingSdk = Wuying.WebSDK;
session = wuyingSdk.createSession('appstream', sessionParam);接続の開始
session.start();接続の停止
session.stop();イベントコールバックの登録
session.addHandle(name, callback) を使用してセッションイベントをリッスンします。
| パラメーター | 型 | 説明 |
|---|---|---|
name | string | イベントタイプです。SessionEventType をご参照ください。 |
callback | Function | イベントが発生したときに呼び出されるハンドラー関数です。 |
// SDK が接続チケットを取得しているときに発生します
session.addHandle('getConnectionTicketInfo', (data) => {
console.log(data);
});
// 接続が確立されたときに発生します
// このコールバックの後、UI コントロールを有効にし、setUiParams()、setInputEnabled()、setClipboardEnabled() などの接続後 API を呼び出します
session.addHandle('onConnected', (data) => {
console.log('connected', data);
});
// 接続が切断されたときに発生します
// data.code を確認して原因を特定します:
// 0 — 切断されました (ASP_CLIENT_DISCONNECT_CONNECT_ERROR)
// 1 — ソケットが閉じられました (ASP_CLIENT_DISCONNECT_SOCKET_CLOSE)
// 2 — WebRTC が閉じられました (ASP_CLIENT_DISCONNECT_WEBRTC_CLOSE)
// 25 — チケットの検証に失敗しました (同じチケットで再接続しようとした場合にも発生します)
// 2001 — クラウドアプリケーションが閉じられました (ASP_CLIENT_DISCONNECT_CLOUD_APP_STOP)
// 2002 — クラウドフォンが横取りされました (ASP_CLIENT_DISCONNECT_CLIENT_PREEMPTION)
// 2003 — ゲストが再起動しました (ASP_CLIENT_DISCONNECT_GUEST_SHUTDOWN_REBOOT)
// 2004 — 現在のユーザーが切断されました
// 2027 — ストリームフェッチングモードが切り替わりました
// 2200 — RTT タイムアウト (ASP_CLIENT_RTT_TIMEOUT)
// 2201 — ネットワーク I/O エラー (ASP_CLIENT_NET_ERROR_IO)
// 2202 — チケットの更新に失敗しました (ASP_CLIENT_UPDATE_TICKET_FAILED)
session.addHandle('onDisConnected', (data) => {
console.log('disconnect', data);
});
// クラウドフォンが SDK にメッセージを送信したときに発生します
session.addHandle('onRuntimeMsg', (data) => {
document.getElementById('GuestMsgContext').value = JSON.stringify(data);
});
// 接続プロセスでエラーが発生したときに発生します
// データ形式:{ code: string, message: string, api: string }
// message には requestId が含まれ、api は失敗したリクエストを識別します
// エラーコードの意味と解決手順については、エラーリファレンスをご参照ください
session.addHandle('onError', (data) => {
console.log('error', data);
});ビジネス API
| API | 説明 |
|---|---|
WebSDK.apiVersion | 現在の SDK バージョンを文字列として返します。 |
setInputEnabled(param: boolean) enableInput(param: boolean) | 入力操作を有効または無効にします。入力操作を無効にすると、クラウドフォンはローカルのキーボード、マウス、またはタッチパッドからの入力イベントに応答しなくなります。enableInput と setInputEnabled は同じ機能を持っています。setInputEnabled の使用を推奨します。 |
enableKeyBoard(param: boolean) | モバイルクライアントでスクリーンキーボードを表示または非表示にします。 |
setClipboardEnabled(param: boolean) | クリップボード制御を有効にするかどうかを指定します。 |
setMicrophoneEnabled(param: boolean) | クラウドフォンでのマイクアクセスを有効または無効にします。 |
setTouchEnabled(param: boolean) | タッチ入力を有効または無効にします。 |
setUiParams(param: UiConfig) | セッションが確立された後、UI 設定を更新します。UiConfig をご参照ください。 |
dataChannel | クライアントとクラウドフォンの間で任意のデータを送受信するためのカスタムデータトンネルです。 |
lyncChannel | クラウドフォンに ADB (Android Debug Bridge) コマンドを送信するためのチャンネルです。 |
UI パラメーターの設定
var uiConfig = {
toolbar: {
visible: false,
},
rotateDegree: 90, // 横向きモードを強制
};
session.setUiParams(uiConfig);データチャンネルの使用
セッション作成時に sessionParam で dataChannelConfig を構成します:
dataChannelConfig: [{
dataChannelName: 'wy_vdagent_default_dc',
}]その後、メッセージをリッスンして送信します:
// 受信メッセージをリッスン
// 回転メッセージのフォーマット:{"action":"rotation","value":"0"}
// value:0 = 0 度、1 = 90 度、2 = 180 度、3 = 270 度
session.addDataChannelListener(
'wy_vdagent_default_dc',
'data',
data => console.log('data from wy_vdagent_default_dc', data)
);
// メッセージを送信 (チャンネル名、メッセージ本文)
session.sendDataChannelMessage('wy_vdagent_default_dc', new Uint8Array([1, 2, 3, 4]));ADB チャンネルの使用
セッション作成時に sessionParam で lyncChannelConfig を構成します:
lyncChannelConfig: [{
lyncChannelName: 'lync_adb_shell',
}]その後、コマンドを送信し、結果をリッスンします:
// ADB コマンドを送信
session.value.sendLyncMessage(
'lync_adb_shell',
JSON.stringify({
id: Date.now(), // 一意のコマンド識別子
cmd: OperationMap[type],
}),
);
// コマンドの結果をリッスン
session.addLyncListener(
'lync_adb_shell',
'onReceivedLyncData',
data => console.log('data from lync_adb_shell', data)
);パラメーターリファレンス
SessionParam
createSession() のパラメーターです。
| パラメーター | 型 | 必須 | デフォルト | 説明 |
|---|---|---|---|---|
openType | OpenType | はい | — | セッションを埋め込み iframe で開くか、新しいタブで開くか。OpenType をご参照ください。 |
iframeId | string | いいえ | — | ターゲット iframe 要素の ID です。openType が inline の場合に必須です。 |
sdkPath | string | いいえ | ./ASP/container.html | SDK コンテナファイルへのパスです。 |
resourceType | ResourceType | はい | — | クラウドフォン統合の場合は local に設定します。ResourceType をご参照ください。 |
connectType | ConnectType | はい | — | クラウドフォンの場合は app に設定します。ConnectType をご参照ください。 |
isOverseas | boolean | いいえ | false | クライアントが中国本土以外からアクセスしている場合は true に設定します。 |
userInfo | UserInfo | はい | — | ユーザーの認証情報です。UserInfo をご参照ください。 |
regionId | string | はい | — | クラウドフォンが配置されているリージョンです。クラウドフォンでは必須です。 |
appInfo | AppInfo | いいえ | — | クラウドフォンインスタンスの構成です。AppInfo をご参照ください。 |
fileInfo | FileInfo | いいえ | — | クラウドドライブの構成です。 |
uiConfig | UiConfig | いいえ | — | UI 表示設定です。UiConfig をご参照ください。 |
logDisabled | boolean | いいえ | false | ARMS テレメトリを無効にするには true に設定します。 |
loginType | LoginType | いいえ | normalLogin | ログイン方法です。LoginType をご参照ください。 |
networkAccessType | string | いいえ | — | デフォルトのアクセスには空白のままにします。VPC ログインを有効にするには設定します。 |
UserInfo
authCode、ticket、または loginToken のいずれか 1 つを渡します。複数渡さないでください。
| パラメーター | 型 | 説明 |
|---|---|---|
authCode | string | GetAuthCode権限付与なしのログイン用の 1 回限りの認証情報です。最優先されます。 を呼び出してこの値を取得します。 |
ticket | string | 直接接続用の認証情報 (SDK v1.4.7 以降) です。authCode と loginToken の両方の最終形態です。 |
loginToken | string | 簡便アカウントのログインに使用する資格情報です。この値を取得するには、GetLoginToken を呼び出します。 |
sessionId | string | GetLoginToken または GetStsToken によって返されるセッション ID です。authCode または loginToken を使用する場合に必須です。 |
AppInfo
クラウドフォンインスタンスの構成です。
| パラメーター | 型 | 必須 | 説明 |
|---|---|---|---|
osType | string | はい | 常に 'Android' です。 |
appId | string | はい | PersistentAppInstanceId です。例:p-0caoet4e18cui****。 |
appVersion | string | いいえ | 起動するアプリケーションのバージョンです。 |
loginRegionId | string | はい | クラウドフォンリソースが配置されているリージョンです。 |
connConfig | ConnConfig | いいえ | 接続構成です。ConnConfig をご参照ください。 |
appInstanceGroupId | string | いいえ | 配信グループ ID です。 |
appInstanceId | string | いいえ | インスタンス ID です。チケットを使用する場合に必須です。例:ai-0cc7s3n1iagyq****。 |
taskId | string | いいえ | アプリケーション起動タスク ID です。 |
bizRegionId | string | いいえ | アプリケーションリソースが配置されているリージョンです。 |
productType | string | いいえ | 配信グループタイプです。デフォルト:'AndroidCloud'。 |
`resourceId` / `appId` の取得:
簡易アカウントでのログイン: クライアントから DescribeUserResources を呼び出して、
ResourceIdを取得します。権限付与なしでログオン: サーバーから DescribeAndroidInstances を呼び出して、
PersistentAppInstanceIdを取得します。
UiConfig
接続ページの UI 設定です。
| パラメーター | 型 | 必須 | デフォルト | 説明 |
|---|---|---|---|---|
toolbar | ToolBarConfig | いいえ | — | ツールバーの表示設定です。ToolBarConfig をご参照ください。 |
exitCheck | boolean | いいえ | true | ページを閉じるときに確認ダイアログを表示するかどうか。 |
rotateDegree | number | いいえ | 0 | 横向きモードを強制します。0 = 通常、90 = 横向き。 |
vconsoleVisiable | boolean | いいえ | — | vconsole デバッグパネルを表示するかどうか。 |
debugPanelVisiable | boolean | いいえ | — | ビットストリーム、フレームレート、ネットワークのデバッグパネルを表示するかどうか。 |
reconnectType | ReconnectType | いいえ | — | 再接続プロンプトのスタイルです。ReconnectType をご参照ください。 |
defaultResolution | ResolutionType | いいえ | 'A' | 最初の接続時のデフォルト解像度です。ResolutionType をご参照ください。 |
language | Language | いいえ | zh-CN | セッション中のポップアップメッセージの言語です。Language をご参照ください。 |
allowErrorDialog | boolean | いいえ | — | セッションでエラーダイアログを表示するかどうか。 |
backgroundColor | string | いいえ | — | 読み込み中に表示されるカスタム背景色です。 |
backgroundImg | string | いいえ | — | 読み込み中に表示されるカスタム背景画像です。 |
ToolBarConfig
| パラメーター | 型 | 必須 | 説明 |
|---|---|---|---|
visible | boolean | いいえ | ツールバーを表示するかどうかを指定します。 |
noMenu | boolean | いいえ | DesktopAssistant がコンテキストメニューの表示をサポートするかどうかを指定します。デフォルト値:false。この機能はバージョン 1.4.20 以降でサポートされています。 |
ConnConfig
| パラメーター | 型 | 必須 | デフォルト | 説明 |
|---|---|---|---|---|
decodeType | ConnDecodeType | いいえ | — | ビデオストリームのデコード方式です。ConnDecodeType をご参照ください。 |
playSoundBackground | boolean | いいえ | — | ブラウザのタブがバックグラウンドになった後もオーディオを再生し続けるかどうか。 |
列挙型
OpenType
| 値 | 説明 |
|---|---|
newTab | セッションを新しいブラウザタブで開きます。 |
inline | セッションを現在のページの iframe に埋め込みます。 |
urlScheme | インストールされている Alibaba Cloud Workspace ネイティブクライアント (v6.2 以降) を使用して開きます。 |
ConnectType
| 値 | 説明 |
|---|---|
app | クラウドフォンです。クラウドフォンセッションには常にこの値を使用します。 |
desktop | クラウドコンピューターです。 |
ResourceType
| 値 | 説明 |
|---|---|
local | ローカルの接続ページを開きます。クラウドフォン統合には常にこの値を使用します。 |
ReconnectType
| 値 | 説明 |
|---|---|
simple | シンプルなローディングスピナーです。 |
normal | カウントダウンダイアログです。 |
ResolutionType
| 値 | 説明 |
|---|---|
A | 速度優先です。現在のウィンドウサイズに一致します。 |
B | 品質優先です。現在のウィンドウサイズに window.devicePixelRatio を掛けた値に一致します。 |
ChargeType
| 値 | 説明 | 最小 SDK バージョン |
|---|---|---|
PostPaid | 従量課金 | 1.4.0 |
PrePaid | サブスクリプション | 1.4.0 |
Language
| 値 | 説明 |
|---|---|
zh-CN | 簡体字中国語 (デフォルト) |
en-US | 英語 |
ja-JP | 日本語 |
LoginType
| 値 | 説明 |
|---|---|
aliyunLogin | Alibaba Cloud アカウントでのログインです。 |
normalLogin | Alibaba Cloud Workspace 簡便アカウントでのログインです。クラウドフォンは normalLogin のみをサポートします。 |
SessionEventType
| 値 | 説明 | 最小 SDK バージョン |
|---|---|---|
getConnectionTicketInfo | SDK が接続チケットを取得しているときに発生します。 | 1.0.0 |
onConnected | クラウドフォンへの接続が確立されたときに発生します。 | 1.0.0 |
onDisConnected | 接続が切断されたときに発生します。切断理由については data.code を確認してください。 | 1.0.0 |
onRuntimeMsg | クラウドフォンのランタイムが SDK にメッセージを送信したときに発生します。 | 1.1.0 |
networkData | リアルタイムのネットワークパフォーマンスメトリクスを提供します。 | 1.3.1 |
onError | 接続プロセス中にエラーが発生したときに発生します。data のフォーマット:{ code, message, api }。 | 1.4.1 |
ConnDecodeType
| 値 | 説明 | 最小 SDK バージョン |
|---|---|---|
0 | ソフトウェアデコード | 1.2.0 |
1 | ハードウェアデコード | 1.2.0 |
2 | WebRTC | 1.2.0 |
プロトコルタイプ
| 値 | 説明 | 最小 SDK バージョン |
|---|---|---|
ASP | Alibaba Cloud ASP プロトコルです。クラウドフォンは ASP のみをサポートします。 | 1.3.0 |
HDX | Citrix HDX プロトコルです。 | 1.3.0 |
エラーリファレンス
切断エラー (onDisConnected)
onDisConnected コールバックは data オブジェクトを受け取ります。data.code を以下の表と照合してください。
| コード | 名前 | 説明 |
|---|---|---|
| 0 | ASP_CLIENT_DISCONNECT_CONNECT_ERROR | 切断されました。 |
| 1 | ASP_CLIENT_DISCONNECT_SOCKET_CLOSE | ソケットが閉じられました。 |
| 2 | ASP_CLIENT_DISCONNECT_WEBRTC_CLOSE | WebRTC が閉じられました。 |
| 25 | — | チケットの検証に失敗しました。ユーザーが切断された後、同じチケットを使用して再度接続をリクエストした場合にも、このエラーがトリガーされます。 |
| 2001 | ASP_CLIENT_DISCONNECT_CLOUD_APP_STOP | クラウドアプリケーションが閉じられました。 |
| 2002 | ASP_CLIENT_DISCONNECT_CLIENT_PREEMPTION | クラウドフォンが別の接続によって横取りされました。 |
| 2003 | ASP_CLIENT_DISCONNECT_GUEST_SHUTDOWN_REBOOT | ゲストが再起動しました。 |
| 2004 | — | 現在のユーザーが切断されました。 |
| 2027 | — | ストリームフェッチングモードが切り替わりました。 |
| 2200 | ASP_CLIENT_RTT_TIMEOUT | RTT (ラウンドトリップタイム) タイムアウトです。 |
| 2201 | ASP_CLIENT_NET_ERROR_IO | ネットワーク I/O エラーです。 |
| 2202 | ASP_CLIENT_UPDATE_TICKET_FAILED | チケットの更新に失敗しました。 |
接続エラー (onError)
onError コールバックは { code: string, message: string, api: string } を受け取ります。message フィールドには requestId が含まれます。api フィールドは失敗したリクエストを識別します。
| エラーコード | 説明 |
|---|---|
AccountNotAvailable | ドメインアカウントがロック、無効化、または期限切れです。IT 管理者またはドメインコントローラー管理者に連絡してください。 |
ClientLockedForAliasFailed | 不正なログイン試行の最大回数に達しました。5 分後にもう一度お試しください。 |
content-monthpackageenterpostpaidphase | このクラウドフォンの月額サブスクリプションは使い果たされました。以降の使用は従量課金制で請求されます。 |
content-recordingscreen | 画面録画は IT 管理者によって有効にされています。すべての操作が録画されます。 |
desktop-AgentUnbinding | 以前の一時的なクラウドフォンがまだ関連付け解除中のため、新しい一時的なクラウドフォンへの接続に失敗しました。後でもう一度お試しください。 |
desktop-AssignUserFailed | クラウドフォンの割り当てに失敗しました。後でもう一度お試しください。 |
desktop-ConnectTicket.Timeout | 接続がタイムアウトしました。クラウドフォンを再起動して、もう一度お試しください。 |
desktop-DesktopAgentFileLose | コアプロセスファイルが見つかりません。クラウドフォンを再起動して、もう一度お試しください。問題が解決しない場合は、IT 管理者に連絡してください。 |
desktop-DesktopContainSecuritySoftware | セキュリティソフトウェアがクラウド環境のネットワークを妨害しています。IT 管理者に連絡してセキュリティソフトウェアを終了させてから、もう一度お試しください。 |
desktop-DesktopContainVpn | VPN ソフトウェアがクラウド環境のネットワークを妨害しています。クラウドフォンを再起動してください。問題が解決しない場合は、IT 管理者に連絡してください。 |
desktop-DesktopGuestStop | クラウドフォンが実行中状態ではありません。 |
desktop-DesktopNetworkAnomaly | クラウドフォンのネットワークが異常です。クラウドフォンを再起動してください。問題が解決しない場合は、IT 管理者に連絡してください。 |
desktop-DesktopNetworkError | クラウドフォンのネットワークが異常です。クラウドフォンを再起動してください。問題が解決しない場合は、IT 管理者に連絡してください。 |
desktop-DesktopResourceStatusInvalid | ECS (Elastic Compute Service) インスタンスが実行されていません。クラウドフォンを再起動して、もう一度お試しください。 |
desktop-DesktopResourceStop | ECS インスタンスがシャットダウンされています。クラウドフォンを再起動して、もう一度お試しください。 |
desktop-DesktopsUnderMaintenance | クラウドフォンが実行中状態ではありません。 |
desktop-DesktopUnavailable | 接続に失敗しました。もう一度お試しください。問題が解決しない場合は、IT 管理者に連絡してクラウドフォンのステータスを更新してください。 |
desktop-DistributeLockFailed | 一時的なクラウドフォンに同時に接続しようとするユーザーが多すぎます。後でもう一度お試しください。 |
desktop-GENERAL_ERROR | サービスエラーです。再接続してください。問題が解決しない場合は、IT 管理者に連絡してください。 |
desktop-GET_TICKET_LOCK | 接続リクエストが頻繁すぎます。後でもう一度お試しください。 |
desktop-INSUFFICIENT_QUOTA | 利用可能な一時的なクラウドフォンがありません。IT 管理者のクラウドフォンクォータが不足しています。IT 管理者に連絡してください。 |
desktop-INTERNAL_ERROR | サービスエラーです。再接続してください。問題が解決しない場合は、IT 管理者に連絡してください。 |
desktop-InvalidBundleId.NotFound | クラウドフォンのイメージテンプレートが異常です。IT 管理者に連絡してください。 |
desktop-InvalidClientIp.Policy | ご利用の IP アドレスはホワイトリストポリシーによってブロックされています。IT 管理者に連絡してください。 |
desktop-InvalidClientType.AccessDenied | このクライアントタイプはクラウドフォンへのアクセスを許可されていません。IT 管理者に連絡してください。 |
desktop-InvalidDesktopId.NotFound | このクラウドフォンを使用する権限が取り消されました。 |
desktop-InvalidDesktopId.Status | クラウドフォンが実行中状態ではありません。 |
desktop-InvalidDesktopStatus.NotRunning | サーバーエラーのため、クラウドフォンのシャットダウンに失敗しました。後でもう一度試すか、IT 管理者に連絡してください。 |
desktop-InvalidDesktopStatus.NotStopped | サーバーエラーのため、クラウドフォンの起動に失敗しました。後でもう一度試すか、IT 管理者に連絡してください。 |
desktop-InvalidDesktopStatusInvalid | クラウドフォンが実行中状態ではありません。 |
desktop-InvalidLiteConnectionCheck | プロトコルサービスエラーです。もう一度お試しください。 |
desktop-NoEnoughDesktops | 現在の IT 管理者の設定に基づいて割り当て可能な一時的なクラウドフォンがありません。IT 管理者に連絡してください。 |
desktop-NotFindDesktopId | クラウドフォンはリリースされました。 |
desktop-NotFoundUserDesktop | このクラウドフォンを使用する権限が取り消されました。 |
desktop-PermissionDeny.Desktop | ご利用の権限は取り消されました。アクセスを復元するには IT 管理者に連絡してください。 |
desktop-RES_GW_ERROR | サービスエラーです。再接続してください。問題が解決しない場合は、IT 管理者に連絡してください。 |
desktop-SDK.ReadTimeout | サービスエラーです。再接続してください。問題が解決しない場合は、IT 管理者に連絡してください。 |
desktop-ServiceUnavailable | サービス接続がタイムアウトしました。再接続してください。問題が解決しない場合は、IT 管理者に連絡してください。 |
desktop-THROTTLING_USER | サービスエラーです。再接続してください。問題が解決しない場合は、IT 管理者に連絡してください。 |
desktop-UnavailableDesktop | ログインがタイムアウトしました。再接続するか、クラウドフォンを再起動してください。問題が解決しない場合は、IT 管理者に連絡してください。 |
desktop-UnavailableDesktop.2901 | プロトコルサービスがクラウド環境に接続できませんでした。クラウドフォンを再起動してください。問題が解決しない場合は、IT 管理者に連絡してください。 |
desktop-UnavailableDesktop.2902 | プロトコルサービスが応答しませんでした。クラウドフォンを再起動してください。問題が解決しない場合は、IT 管理者に連絡してください。 |
desktop-UnavailableDesktop.2903 | クラウド環境エラーです。クラウドフォンを再起動してください。問題が解決しない場合は、IT 管理者に連絡してください。 |
desktop-UnavailableDesktop.2904 | クラウド環境エラーです。クラウドフォンを再起動してください。問題が解決しない場合は、IT 管理者に連絡してください。 |
desktop-UnavailableDesktop.2905 | セッションのログオフがタイムアウトしました (マルチユーザー型クラウドフォン)。再接続するか、クラウドフォンを再起動してください。 |
desktop-UnavailableDesktop.2906 | システムログインの応答がタイムアウトしました。再接続するか、クラウドフォンを再起動してください。 |
desktop-UnavailableDesktop.2907 | プロトコルサービスはまだ起動中です。後で再接続するか、クラウドフォンを再起動してください。問題が解決しない場合は、IT 管理者に連絡してください。 |
desktop-UnavailableDesktop.NotRegistered | クラウドフォンは削除されました。 |
desktop-UnavailableDesktop.ServerNotReady | システムログインエラーです。IT 管理者に連絡してアクセスを再許可してもらってください。 |
desktop.linux-UnavailableDesktop.AuthFailed | ドメインからのデタッチの問題の可能性があります。クラウドフォンを再起動してもう一度試すか、IT 管理者に連絡してください。 |
DesktopNetworkError.AbortBySoftware | クラウドフォンのネットワークが異常です。クラウド環境と管理サービス間の接続が中断されました。この問題を解決するには、クラウドフォンを再起動してください。 |
DesktopNetworkError.BadHandShake | クラウドフォンのネットワークが異常です。クラウド環境と管理サービス間の接続が中断されました。この問題を解決するには、クラウドフォンを再起動してください。 |
DesktopNetworkError.BindAddressFailed | クラウドフォンのネットワークが異常です。クラウド環境と管理サービス間の接続が中断されました。この問題を解決するには、クラウドフォンを再起動してください。 |
DesktopNetworkError.ConnectAddressFailed | クラウドフォンのネットワークが異常です。クラウド環境と管理サービス間の接続が中断されました。この問題を解決するには、クラウドフォンを再起動してください。 |
DesktopNetworkError.ConnectionClosedError | クラウドフォンのネットワークが異常です。クラウド環境と管理サービス間の接続が中断されました。この問題を解決するには、クラウドフォンを再起動してください。 |
DesktopNetworkError.ConnectionRefusedError | クラウドフォンのネットワークが異常です。クラウド環境と管理サービス間の接続が中断されました。この問題を解決するには、クラウドフォンを再起動してください。 |
DesktopNetworkError.ConnectionResetError | クラウドフォンのネットワークが異常です。クラウド環境と管理サービス間の接続が中断されました。この問題を解決するには、クラウドフォンを再起動してください。 |
DesktopNetworkError.ConnectionTimeout | クラウドフォンのネットワークが異常です。クラウド環境と管理サービス間の接続が中断されました。この問題を解決するには、クラウドフォンを再起動してください。 |
DesktopNetworkError.DnsLookupFailed | クラウドフォンのネットワークが異常です。クラウド環境と管理サービス間の接続が中断されました。この問題を解決するには、クラウドフォンを再起動してください。 |
DesktopNetworkError.Forbidden | クラウドフォンのネットワークが異常です。クラウド環境と管理サービス間の接続が中断されました。この問題を解決するには、クラウドフォンを再起動してください。 |
DesktopNetworkError.ReceivedUnexpectedEOF | クラウドフォンのネットワークが異常です。クラウド環境と管理サービス間の接続が中断されました。この問題を解決するには、クラウドフォンを再起動してください。 |
DesktopNetworkError.SystemOutOfResource | クラウドフォンのネットワークが異常です。クラウド環境と管理サービス間の接続が中断されました。この問題を解決するには、クラウドフォンを再起動してください。 |
DesktopNetworkError.UnKnowError | クラウドフォンのネットワークが異常です。クラウド環境と管理サービス間の接続が中断されました。この問題を解決するには、クラウドフォンを再起動してください。 |
DesktopStatus-Desc-Updating | クラウドフォンの構成が更新中です。一時的に利用できません。 |
DesktopStatus-Repairing | クラウドフォンは修復中です。 |
DesktopStatus-Updating | クラウドフォンはスペックアップまたはスペックダウン中です。 |
DeviceNotInManage | 信頼できるデバイス認証が有効になっています。管理者にこの端末を信頼できるデバイスとして追加するか、信頼できるデバイス認証を無効にするよう依頼してください。 |
DirectoryLoginUnsupported | 組織 ID を使用してログインしてください。 |
DomainFailed | ドメインへの参加に失敗しました。 |
DomainRelationshipFailed | システムドメインの関係が異常です。 |
ExistedEmail | そのメールアドレスは既に使用されています。 |
ExistedEndUserId | そのユーザー名は既に使用されています。 |
ExistedPhoneNumber | その携帯電話番号は既に使用されています。 |
ExpiredEmailVerifyCode | メール検証コードの有効期限が切れています。新しいコードをリクエストしてください。 |
FailedToSendEmailVerifyCode | メール検証コードの送信に失敗しました。もう一度お試しください。 |
ForbidByClientVersionForBusiness | これはビジネス版の組織です。クライアントを最新バージョンにアップグレードしてください。 |
ForbidByPasswordPolicy | IT 管理者が「ログインパスワードの変更」機能を無効にしています。 |
FOTA_DESKTOP_IN_USE | クラウドフォンは利用中です。接続を切断してから、もう一度更新をお試しください。 |
FOTA_SNAPSHOT_IN_PROGRESS | システムスナップショットが作成中です。後でもう一度更新をお試しください。 |
GuestOperateDesktopFail | クラウドフォンのシャットダウンまたは再起動に失敗しました。 |
GuestOperateDesktopTimeout | シャットダウンまたは再起動操作がタイムアウトしました。 |
GuestRebootOperateFail | クラウドフォンの再起動に失敗しました。 |
GuestRebootOperateTimeout | 再起動操作がタイムアウトしました。 |
GuestStopOperateFail | クラウドフォンのシャットダウンに失敗しました。 |
GuestStopOperateTimeout | シャットダウン操作がタイムアウトしました。 |
InvalidDirectoryType | RAM ユーザーはオフラインです。IT 管理者に連絡してください。 |
InvalidEmailVerifyCode | メール検証コードが正しくありません。 |
InvalidMfaDeviceStatus | 無効な多要素認証 (MFA) デバイスです。アカウントに関連付けられたデバイスを使用してください。 |
InvalidPassword | ユーザー名またはパスワードが正しくありません。 |
LoginError.MissingConcatForVerify | これは管理者によってアクティベートされたアカウントです。本人確認を完了できません。IT 管理者に連絡してください。 |
LoginForbidden | 信頼できるデバイス認証が有効になっています。管理者にこの端末を信頼できるデバイスとして追加するか、信頼できるデバイス認証を無効にするよう依頼してください。 |
LoginForbidden.LockedByAdmin | 簡便アカウントはロックされています。IT 管理者に連絡してください。 |
LoginForbiddenByDevice | この端末は現在のアカウントでの使用が許可されていません。 |
LoginForbiddenByUntrustedDevice | この端末は信頼されていません。管理者が信頼できるデバイスとして追加するか、この制限を無効にする必要があります。 |
LoginForbiddenByUser | ユーザーのログイン端末制限が有効になっています。指定された端末からログインしてください。 |
MfaClientNotSupport | クライアントのバージョンがこの MFA 方式をサポートしていません。クライアントをアップグレードしてください。 |
MfaNotAllowed | アカウントにはこの MFA 方式に必要な情報が不足しています。IT 管理者に連絡してください。 |
MfaTypeNotAllowed | この MFA 方式は IT 管理者によって有効にされていません。 |
MfaUserGoingToBeLocked | 検証コードが正しくありません。10 回連続で間違えると、アカウントは 20 分間ロックされます。 |
MfaUserNotExist | アカウントは削除されました。IT 管理者に連絡してください。 |
MfaVerifyCodeDiscarded | 検証コードはもはや有効ではありません。新しいコードをリクエストしてください。 |
PhoneIsNotRegistered | 携帯電話番号が正しくないか、アカウントに関連付けられていません。 |
SessionForceQuit | 自動的にログオフされました。別の端末からログオフしたか、アクティブな端末の数が IT 管理者によって設定された上限を超えました。 |
StartApplicationGuestTimeout | ネットワークが不安定です。アプリケーションの起動に失敗しました。もう一度お試しください。 |
StartDesktopFail | クラウドフォンの起動に失敗しました。 |
ThrottlingSendEmailVerifyCodeLimit | 検証コードは 1 分に 1 回しか送信できません。 |
UnavailableDesktop.2907 | プロトコルサービスはまだ起動中です。後で再接続するか、クラウドフォンを再起動してください。問題が解決しない場合は、IT 管理者に連絡してください。 |
よくある質問
DesktopAssistant ツールバーを非表示にする方法
セッション作成時に uiConfig で toolbar.visible を false に設定します:
uiConfig: {
toolbar: {
visible: false,
},
},ASP チャンネル経由で ADB コマンドを送信する方法
セッション作成時に sessionParam で lyncChannelConfig を初期化します:
lyncChannelConfig: [
{
lyncChannelName: 'lync_adb_shell',
},
],session.sendLyncMessage() を使用してコマンドを送信します:
session.sendLyncMessage(
'lync_adb_shell',
JSON.stringify({
id: crypto.randomUUID(),
cmd: 'input keyevent KEYCODE_VOLUME_UP',
})
);session.addLyncListener() を使用して結果をリッスンします:
session.addLyncListener(
'lync_adb_shell',
'onReceivedLyncData',
data => console.log('data from lync_adb_shell', data)
);一般的な ADB コマンド:
| 機能 | コマンド |
|---|---|
| 戻るキー | input keyevent KEYCODE_BACK |
| ホームキー | input keyevent KEYCODE_HOME |
| 切り替えキー | input keyevent KEYCODE_APP_SWITCH |
| ミュート | input keyevent 164 |
| 音量を上げる | input keyevent KEYCODE_VOLUME_UP |
| 音量を下げる | input keyevent KEYCODE_VOLUME_DOWN |
| ナビゲーションバーを非表示 | setprop persist.wy.hasnavibar false; killall com.android.systemui |
| ナビゲーションバーを表示 | setprop persist.wy.hasnavibar true; killall com.android.systemui |
| スクリーンショットを撮る | screencap -p /sdcard/Download/abc.png |
カメラの使用方法
ブラウザはカメラの権限にセキュアコンテキストを要求するため、カメラにアクセスするにはデモ URL で https を使用する必要があります。
クライアントの前面カメラまたは背面カメラのみが必要な場合など、特別なテストケースでは、次の設定を適用する必要があります:
// 前面カメラ
session.setLocalConfig('setCameraType', 1);
// 背面カメラ
session.setLocalConfig('setCameraType', 2);クリップボードが機能しない
まず、ブラウザでクリップボードの権限が有効になっていることを確認してください。
ブラウザの権限が付与されているにもかかわらずクリップボードの同期が機能しない場合は、クラウドフォンコンソールでインスタンスに関連付けられているポリシーを確認してください。クリップボードポリシーが双方向転送を許可するように設定されていることを確認します。