全部產品
Search
文件中心

AgentBay:Web SDK

更新時間:Nov 14, 2025

無影 Web SDK 是用於串連無影 AgentBay 智能沙箱的 Web 端開發工具。通過整合 Web SDK,使用者可以根據業務需求快速定製和搭建使用無影 AgentBay 的 網頁用戶端。

1. 快速開始

1.1 擷取SDK和DEMO

擷取方式

說明

本平台所有文檔、SDK、用戶端程式僅限於本人或本企業使用,未經阿里雲同意不會轉寄給第三方個人或企業。

目錄結構說明

├── WuyingWebDemo.html  //SDK樣本。
├── WuyingWebSDK.js     //SDK的介面檔案,需要在前端頁面中引用該檔案。
└── sdk                 //iframe內嵌資源檔
     └── ASP
          └── container.html
  • Web.SDK.Demo是一個Vue工程,啟動步驟為:

    1. 在命令列工具中執行以下命令,檢查本地環境是否已安裝Node.js。

      node
      • 若返回Welcome to Node.js資訊,則說明已安裝。

      • 若沒有返回上述資訊,則說明未安裝,請先安裝Node.js。

    2. 執行以下命令,進入Vue工程根目錄。

      說明

      請將<ProjectRootPath>替換為Vue工程根目錄的實際路徑。

      cd <ProjectRootPath>
    3. 執行以下命令,安裝Node.js專案的依賴包。

      npm i
    4. 執行以下命令啟動。

      npm run dev

      命令運行成功後會輸出可訪問的連結地址。

  • WuyingWebDemo.html的啟動步驟為:

    1. 執行以下命令,進入HTML檔案所在目錄。

      說明

      請將<HTMLPath>替換為HTML檔案所在目錄的實際路徑。

      cd <HTMLPath>
    2. 執行以下命令,啟動HTTP伺服器。

      python3 -m http.server
    3. 在瀏覽器中開啟http://localhost:8000/WuyingWebDemo.html

1.2 對接流程

1.3 最佳實務

方案詳見無影雲手機快速整合最佳實務。 雲手機整合的總體方案如下圖所示

有多種登入方式,擷取整合SDK所需要的串連雲手機Ticket憑證,流程圖為:

具體代碼可以參考生命週期介面的參考代碼。

2. 生命週期介面

2.1 初始化建立Session

//通過Ticket來建立session
var userInfo = {
  ticket: 'xxx',
};
var appInfo = {
  osType: 'Android', // 必填
  appId: "android", 
  appInstanceId: "ai-xxxxxx", //appInstanceId以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來建立session
var userInfo = {
  sessionId: sessionId,
  authCode: authCode,
};
var appInfo = {
  osType: 'Android', // 必填
  appId: "android", 
  resourceId: "p-xxxxxx", //resourceId以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或stsToken來建立session
var userInfo = {
  sessionId: sessionId,
  loginToken: loginToken,
};
var appInfo = {
  osType: 'Android', // 必填
  appId: "android", 
  resourceId: "p-xxxxxx", //resourceId以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);

createSession參數說明:

參數

類型

是否必填

說明

id

string

常量值,雲手機是appstream

sessionParams

SessionParam

建立會話參數,參考 4.1 SessionParam

sessionParams參數說明:

說明

使用者登入有兩種方式,免授權登入和便捷帳號登入,便攜帳號登入依賴無影的使用者體系,免授權登入客戶可以使用自己的使用者體系。免授權登入鑒權參數為authCode,便捷帳號登入鑒權參數為loginTokenticket是串連執行個體的鑒權資訊,loginTokenauthCode最終都是轉換成ticket去串連執行個體。請在authCodeticketloginToken三者之間選一個。

2.2 建立串連

session.start();

2.3 中斷連線

session.stop();

2.4 回調說明

回調介面: addHandle(name: SessionEventType, callback: Function)

回調介面參數說明:

名稱

類型

描述

name

string

監聽事件的類型,參考本文檔5.9 SessionEventType枚舉定義

callback

Function

回呼函數

回調程式碼範例

session.addHandle('getConnectionTicketInfo', (data) => {
  console.log(data);
});

session.addHandle('onConnected', (data) => {
  console.log('connected', data);
});

session.addHandle('onDisConnected', (data) => {
  console.log('disconnect', data);
});

session.addHandle('onRuntimeMsg', (data) => {
  document.getElementById('GuestMsgContext').value = JSON.stringify(data);
});

3. 業務介面

介面

說明

WebSDK.apiVersion

擷取當前WebSDK的版本號碼,類型為string

setInputEnabled(param: boolean)

enableInput(param: boolean)

開啟和關閉輸入操作。

  • 關閉輸入操作後,對於本地鍵盤、滑鼠、觸摸板的輸入事件,雲手機都不會響應。

  • enableInputsetInputEnabled功能相同,推薦使用setInputEnabled

enableKeyBoard(param: boolean)

是否喚起移動端的鍵盤。

setClipboardEnabled(param: boolean)

是否開啟剪貼簿控制。

setMicrophoneEnabled(param: boolean)

是否開啟麥克風控制。

setTouchEnabled(param: boolean)

是否開啟觸摸控制。

setUiParams(param: UiConfig)

session建立後主動設定UI配置(如菜單是否顯示/是否強制橫屏)。

說明

關於UIConfig的詳細資料,請參見4.4 UiConfig

樣本:

var uiConfig = {
  toolbar: {
    visible: false,
  },
  rotateDegree: 90,
};
session.setUiParams(uiConfig);

dataChannel

端雲接發自訂資料通道。

//在sessionParam裡配置dataChannelConfig
dataChannelConfig: [{
     dataChannelName: 'wy_vdagent_default_dc',
}
// 監聽資料通道訊息
/** value含義 0- 0  1- 90  2- 180  3- 270 
  * 橫屏訊息格式 {"action":"rotation","value":"0"}
*/
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]));

lyncChannel

端側發送adb命令通道

//在sessionParam裡配置lyncChannelConfig
lyncChannelConfig: [
{
    lyncChannelName: 'lync_adb_shell',
}
//發送adb命令
session.value.sendLyncMessage(
    'lync_adb_shell',
    JSON.stringify({
      id: Date.now(), // 執行命令唯一標識
       cmd: OperationMap[type],
     }),
 );
// 監聽adb命令回調
session.addLyncListener('lync_adb_shell', 'onReceivedLyncData', data => console.log('data from lync_adb_shell', data));

4. 參數詳細說明

4.1 SessionParam

建立會話的參數。

名稱

類型

必填

描述

openType

OpenType

iframe內嵌還是新標籤頁開啟

iframeId

string

如果iframe開啟,則需要填入iframeId

sdkPath

string

配置SDK檔案所在路徑,不填則預設為相對路徑,例如./ASP/container.html

resourceType

ResourceType

目前只支援開啟本地串連頁面

connectType

ConnectType

開啟雲手機還是雲電腦

isOverseas

boolean

是否海外訪問,預設false

userInfo

UserInfo

使用者的登入態資訊

regionId

string

開啟雲手機時必填為雲手機所在的地區

appInfo

AppInfo

雲手機相關資訊

fileInfo

FileInfo

網盤相關參數

uiConfig

UiConfig

UI設定項

logDisabled

bool

是否關閉ARMS統計,預設為false不關閉

loginType

LoginType

預設無影帳號登入

networkAccessType

string

預設不填,支援VPC登入

4.2 UserInfo

使用者的登入態資訊。請在authCodeticketloginToken三者之間,根據自身情況選擇其一。authCode是免授權登入得到的;loginToken是便攜帳號登入得到的;ticket是通過authCodeloginToken請求得到的。

名稱

類型

必填

描述

authCode

string

只能用一次的登入態憑證,優先順序最高

ticket

string

1.4.7版本之後支援直接傳入Ticket建立串連

loginToken

string

便攜帳號鑒權憑證

sessionId

string

請求loginToken或stsToken得到的SessionId

4.3 AppInfo

開啟雲手機的參數。

名稱

類型

必填

描述

osType

string

常量值Android

appId

string

填入 PersistentAppInstanceId (樣本值:p-0caoet4e18cui****)

appVersion

string

開啟應用的版本

loginRegionId

string

雲手機資源所在的地區

connConfig

ConnConfig

串連配置參數

appInstanceGroupId

string

交付組ID

appInstanceId

string

執行個體ID,若使用ticket串連為必填 (樣本值:ai-0cc7s3n1iagyq****)

taskId

string

應用啟動任務ID

bizRegionId

string

應用資源所在的地區

productType

string

交付群組類型,雲手機填預設AndroidCloud

4.4 UiConfig

串連頁面UI設定。

名稱

類型

必填

描述

toolbar

ToolBarConfig

串連頁面工具列顯示設定

exitCheck

bool

退出當前頁面瀏覽器二次確認,預設開啟

rotateDegree

number

強制橫屏(目前只支援0:正常;90:強制橫屏)

vconsoleVisiable

bool

是否顯示vconsole調試框

debugPanelVisiable

bool

是否顯示碼流、幀率等資訊框

reconnectType

ReconnectType

重連提示框樣式

defaultResolution

ResolutionType

首次串連的預設解析度,預設為'A'

language

Language

設定內部彈窗提示的語言,預設為簡體中文

allowErrorDialog

bool

是否彈出錯誤提示窗

backgroundColor

string

自訂載入過程背景

backgroundImg

string

自訂載入過程圖片

4.5 ToolBarConfig

工具列顯示設定。

名稱

類型

必填

描述

visible

bool

工具列是否顯示

noMenu

bool

懸浮球是否支援開啟右鍵菜單,預設為false,1.4.20以上版本支援

4.6 ConnConfig

串連配置參數。

名稱

類型

必填

描述

decodeType

ConnDecodeType(數字枚舉)

編碼方式配置

playSoundBackground

bool

切換後台後是否繼續播放聲音

5. 枚舉類型

5.1 OpenType

開啟雲手機的方式。

名稱

含義

newTab

新的Tab頁面開啟

inline

內嵌iframe頁面開啟

urlScheme

支援本地原生用戶端開啟,需安裝V6.2以上版本的無影案頭用戶端

5.2 ConnectType

開啟雲電腦或者雲手機。

名稱

含義

app

開啟雲手機

desktop

開啟雲電腦

目前雲手機複用app類型,串連雲手機時,connectType固定填app

5.3 ResourceType

開啟本地串連頁面還是無影WebClient。

名稱

含義

local

開啟本地串連HTML頁面

無影雲手機整合固定填local

5.4 ReconnectType

重連提示彈窗的UI。

名稱

含義

simple

簡單的載入樣式

normal

倒計時彈窗

5.5 ResolutionType

初始化串連預設解析度(串連時優先取使用者佈建過的解析度)。

名稱

含義

A

速度優先,當前視窗大小

B

品質優先,當前視窗大小乘以window.devicePixelRatio

5.6 ChargeType

雲手機付費類型。

名稱

含義

開始支援版本

PostPaid

隨用隨付

1.4.0

PrePaid

訂用帳戶付費

1.4.0

5.7 Language

語言設定選項,預設為zh-CN

名稱

含義

zh-CN

簡體中文

en-US

英文

ja-JP

日文

5.8 LoginType

登入雲手機方式。

名稱

含義

aliyunLogin

阿里雲帳號登入

normalLogin

無影帳號登入(雲手機只支援normalLogin)。

5.9 SessionEventType

會話的事件類型映射(加雲手機事件說明)。

名稱

含義

開始支援版本

getConnectionTicketInfo

串連雲手機事件

1.0.0

onConnected

雲手機建立串連事件

1.0.0

onDisConnected

雲手機中斷連線事件

1.0.0

onRuntimeMsg

Runtime內發送給SDK的訊息

1.1.0

networkData

網路績效參數

1.3.1

onError

接受串連過程中的錯誤

1.4.1

5.10 ConnDecodeType

流的解碼類型。

名稱

含義

開始支援版本

0

軟解

1.2.0

1

硬解

1.2.0

2

WebRTC

1.2.0

5.11 ProtocolType

協議類型。

名稱

含義

開始支援版本

ASP

阿里雲自研ASP協議(雲手機只支援ASP協議)

1.3.0

HDX

Citrix協議

1.3.0

6. 錯誤碼

6.1 onDisconnected接收斷連的報錯資訊

代碼

名稱

含義

0

ASP_CLIENT_DISCONNECT_CONNECT_ERROR

中斷連線

1

ASP_CLIENT_DISCONNECT_SOCKET_CLOSE

Socket關閉

2

ASP_CLIENT_DISCONNECT_WEBRTC_CLOSE

WebRTC關閉

25

Ticket校正失敗。使用者串連被斷開後,若使用同一個Ticket再次請求建連,也將觸發此錯誤。

2001

ASP_CLIENT_DISCONNECT_CLOUD_APP_STOP

雲應用關閉

2002

ASP_CLIENT_DISCONNECT_CLIENT_PREEMPTION

當前雲手機被搶佔

2003

ASP_CLIENT_DISCONNECT_GUEST_SHUTDOWN_REBOOT

Guest重啟

2004

目前使用者串連被斷開

2027

拉流模式已切換

2200

ASP_CLIENT_RTT_TIMEOUT

RTT逾時

2201

ASP_CLIENT_NET_ERROR_IO

網路IO錯誤

2202

ASP_CLIENT_UPDATE_TICKET_FAILED

更新Ticket錯誤

6.2 onError接收串連過程的錯誤資訊

接收格式:{code: string, message: string, api: string}message包含requestIdapi為報錯的請求。

錯誤碼

錯誤說明

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

Elastic Compute Service當前非運行狀態,導致雲手機串連失敗。請重啟雲手機後再次串連。

desktop-DesktopResourceStop

Elastic Compute Service已關機,導致雲手機串連失敗。請重啟雲手機後再次串連。

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

IT管理員設定了IP白名單策略導致無法在您目前的IP環境下串連此台雲手機,請聯絡IT管理員。

desktop-InvalidClientType.AccessDenied

IT管理員設定了禁止在此用戶端內運行此台雲手機。如需繼續使用此台雲手機,請聯絡IT管理員。

desktop-InvalidDesktopId.NotFound

IT管理員已取消您使用此台雲手機的許可權。

desktop-InvalidDesktopId.Status

此台雲手機非“運行中”狀態導致串連失敗。

desktop-InvalidDesktopStatus.NotRunning

服務端異常導致關機失敗,請稍後重試或聯絡您的IT管理員。

desktop-InvalidDesktopStatus.NotStopped

服務端異常導致開機失敗,請稍後重試或聯絡您的IT管理員。

desktop-InvalidDesktopStatusInvalid

此台雲手機當前非運行狀態導致串連失敗。

desktop-InvalidLiteConnectionCheck

由於協議服務出現異常導致雲手機重連失敗,請嘗試重新串連。

desktop-NoEnoughDesktops

由於IT管理員的設定導致當前無可分配的臨時雲手機,請聯絡IT管理員。

desktop-NotFindDesktopId

此台雲手機已被IT管理員釋放。

desktop-NotFoundUserDesktop

IT管理員已取消您使用此台雲手機的許可權。

desktop-PermissionDeny.Desktop

IT管理員已取消您的使用許可權。如需繼續使用雲手機,請聯絡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

IT管理員已刪除此台雲手機。

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

該組織ID為商業版,須將當前用戶端升級至最新版本才能登入。

ForbidByPasswordPolicy

修改失敗,您的IT管理員已禁用“修改登入密碼”。

FOTA_DESKTOP_IN_USE

雲手機“%s”正在使用中,請中斷連線後重試“更新”。

FOTA_SNAPSHOT_IN_PROGRESS

由於雲手機“%s”正在建立系統快照中,當前無法執行鏡像更新,請稍後重試。

GuestOperateDesktopFail

雲手機關機或重啟失敗

GuestOperateDesktopTimeout

由於響應逾時導致您在雲手機內操作的關機或重啟執行失敗。

GuestRebootOperateFail

雲手機重啟失敗

GuestRebootOperateTimeout

由於響應逾時導致您在雲手機內操作的重啟執行失敗。

GuestStopOperateFail

雲手機關機失敗

GuestStopOperateTimeout

由於響應逾時導致您在雲手機內操作的關機執行失敗。

InvalidDirectoryType

RAM帳號已下線,請聯絡IT管理員。

InvalidEmailVerifyCode

郵箱驗證碼錯誤,請重新輸入。

InvalidMfaDeviceStatus

虛擬多因素認證裝置錯誤。請使用與您的帳號連結的裝置。

InvalidPassword

使用者名稱或密碼輸入錯誤

LoginError.MissingConcatForVerify

由於此帳號為管理員啟用帳號,無法完成身份安全校正,請聯絡IT管理員。

LoginForbidden

無法登入。該辦公網路或組織已開啟可信裝置認證,需請管理員關閉可信裝置認證或手動將當前終端納管為可信裝置。

LoginForbidden.LockedByAdmin

該便捷帳號已被鎖定,請聯絡您的IT管理員手動解鎖。

LoginForbiddenByDevice

無法登入。管理員限定該終端只能被特定使用者登入,當前帳號不在限定範圍內。

LoginForbiddenByUntrustedDevice

無法登入,管理員已開啟“攔截不可信終端登入 ”,需要管理員將此終端納管為可信裝置或禁用此功能。

LoginForbiddenByUser

無法登入。管理員開啟使用者登入終端限制,請至指定終端進行登入。

MfaClientNotSupport

用戶端版本過低,不支援該多因素認證方式,請升級用戶端。

MfaNotAllowed

您的帳號缺少該多因素認證方式要求的資訊,請聯絡IT管理員補充。

MfaTypeNotAllowed

您的IT管理員尚未啟用該多因素認證方式

MfaUserGoingToBeLocked

驗證碼錯誤。若連續錯誤達10次,您的帳號將被鎖定20分鐘。

MfaUserNotExist

此帳號已被刪除。請向您的IT管理員諮詢詳情。

MfaVerifyCodeDiscarded

該驗證碼已失效,請重新擷取。

PhoneIsNotRegistered

手機號輸入錯誤或管理員未將手機號綁定到帳號。

SessionForceQuit

已自動退登。 原因:已在其他終端登出或登入終端數量超出IT管理員限制。

StartApplicationGuestTimeout

網路訊號不穩定,應用開啟失敗,請重試。

StartDesktopFail

雲手機開機失敗

ThrottlingSendEmailVerifyCodeLimit

一分鐘只能發送一次驗證碼

UnavailableDesktop.2907

由於協議服務仍在啟動中,導致雲手機串連失敗。請稍後重新串連或重啟雲手機,如仍舊出現串連失敗,請聯絡IT管理員。

7. 常見問題

如何關閉懸浮球?

建立會話(createSession)階段初始化uiConfig時,可以關閉懸浮球。

uiConfig: {
  toolbar: {
    visible: false,
  },
},

怎麼通過ASP通道發送ADB命令?

建立會話(createSession)時初始化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));

常見命令:

功能

命令

返回鍵

input keyevent KEYCODE_BACK

Home鍵

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

網路攝影機使用常見問題

  • 使用Demo串連雲手機使用網路攝影機時,需注意,因為瀏覽器對網路攝影機有許可權控制,所以訪問Demo的連結地址必須是https開頭的,才能正確使用網路攝影機。

  • 針對一些特殊情境,比如僅需要端側自拍或者後置網路攝影機時,需要做如下設定。

// 前攝
session.setLocalConfig('setCameraType', 1);
// 後攝
session.setLocalConfig('setCameraType', 2);

剪貼簿使用常見問題

  • 遇到剪貼簿不生效情況

    • 檢測瀏覽器是否開啟了剪貼簿許可權。

    • 無影雲手機控制台檢測執行個體綁定的策略,剪貼簿策略是否是雙向開啟。