無影 Web SDK 是用於串連無影 AgentBay 智能沙箱的 Web 端開發工具。通過整合 Web SDK,使用者可以根據業務需求快速定製和搭建使用無影 AgentBay 的 網頁用戶端。
1. 快速開始
1.1 擷取SDK和DEMO
擷取方式
本平台所有文檔、SDK、用戶端程式僅限於本人或本企業使用,未經阿里雲同意不會轉寄給第三方個人或企業。
目錄結構說明
├── WuyingWebDemo.html //SDK樣本。
├── WuyingWebSDK.js //SDK的介面檔案,需要在前端頁面中引用該檔案。
└── sdk //iframe內嵌資源檔
└── ASP
└── container.htmlWeb.SDK.Demo是一個Vue工程,啟動步驟為:
在命令列工具中執行以下命令,檢查本地環境是否已安裝Node.js。
node若返回
Welcome to Node.js資訊,則說明已安裝。若沒有返回上述資訊,則說明未安裝,請先安裝Node.js。
執行以下命令,進入Vue工程根目錄。
說明請將
<ProjectRootPath>替換為Vue工程根目錄的實際路徑。cd <ProjectRootPath>執行以下命令,安裝Node.js專案的依賴包。
npm i執行以下命令啟動。
npm run dev命令運行成功後會輸出可訪問的連結地址。
WuyingWebDemo.html的啟動步驟為:
執行以下命令,進入HTML檔案所在目錄。
說明請將
<HTMLPath>替換為HTML檔案所在目錄的實際路徑。cd <HTMLPath>執行以下命令,啟動HTTP伺服器。
python3 -m http.server在瀏覽器中開啟
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參數說明:
userInfo:
sessionId:請求loginToken或stsToken得到的SessionId。authCode:通過擷取授權碼 API擷取。loginToken:通過GetLoginToken - 擷取登入憑證 API擷取。
使用者登入有兩種方式,免授權登入和便捷帳號登入,便攜帳號登入依賴無影的使用者體系,免授權登入客戶可以使用自己的使用者體系。免授權登入鑒權參數為authCode,便捷帳號登入鑒權參數為loginToken。ticket是串連執行個體的鑒權資訊,loginToken和authCode最終都是轉換成ticket去串連執行個體。請在authCode、ticket和loginToken三者之間選一個。
appInfo:執行個體相關資訊。
resourceId:在便攜帳號下,端側可通過請求DescribeUserResources - 查詢使用者擁有的無影雲資源清單API獲得返回的ResourceId。
在免授權登入下,可通過自己服務端請求查詢執行個體詳細資料API獲得返回的PersistentAppInstanceId。
openType:開啟雲手機的方式,參考本文檔openType枚舉定義。
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的版本號碼,類型為 |
setInputEnabled(param: boolean) enableInput(param: boolean) | 開啟和關閉輸入操作。
|
enableKeyBoard(param: boolean) | 是否喚起移動端的鍵盤。 |
setClipboardEnabled(param: boolean) | 是否開啟剪貼簿控制。 |
setMicrophoneEnabled(param: boolean) | 是否開啟麥克風控制。 |
setTouchEnabled(param: boolean) | 是否開啟觸摸控制。 |
setUiParams(param: UiConfig) | session建立後主動設定UI配置(如菜單是否顯示/是否強制橫屏)。 說明 關於UIConfig的詳細資料,請參見4.4 UiConfig。 樣本: |
dataChannel | 端雲接發自訂資料通道。 |
lyncChannel | 端側發送adb命令通道 |
4. 參數詳細說明
4.1 SessionParam
建立會話的參數。
名稱 | 類型 | 必填 | 描述 |
openType | OpenType | 是 | iframe內嵌還是新標籤頁開啟 |
iframeId | string | 否 | 如果iframe開啟,則需要填入iframeId |
sdkPath | string | 否 | 配置SDK檔案所在路徑,不填則預設為相對路徑,例如 |
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
使用者的登入態資訊。請在authCode、ticket和loginToken三者之間,根據自身情況選擇其一。authCode是免授權登入得到的;loginToken是便攜帳號登入得到的;ticket是通過authCode或loginToken請求得到的。
名稱 | 類型 | 必填 | 描述 |
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 | 否 | 交付群組類型,雲手機填預設 |
4.4 UiConfig
串連頁面UI設定。
名稱 | 類型 | 必填 | 描述 |
toolbar | ToolBarConfig | 否 | 串連頁面工具列顯示設定 |
exitCheck | bool | 否 | 退出當前頁面瀏覽器二次確認,預設開啟 |
rotateDegree | number | 否 | 強制橫屏(目前只支援 |
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 | 否 | 懸浮球是否支援開啟右鍵菜單,預設為 |
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 | 無影帳號登入(雲手機只支援 |
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包含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 | 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);剪貼簿使用常見問題
遇到剪貼簿不生效情況
檢測瀏覽器是否開啟了剪貼簿許可權。
在無影雲手機控制台檢測執行個體綁定的策略,剪貼簿策略是否是雙向開啟。