O Alibaba Cloud Workspace Web SDK oferece APIs abertas para conectar o Workspace Web Client ao Elastic Desktop Service (EDS), a aplicativos em nuvem e a cloud phones. Com a integração do SDK, você personaliza e cria rapidamente um cliente web adaptado aos requisitos do seu negócio.
1. Início rápido
1,1 SDK e demo
Ao baixar e utilizar o SDK, você concorda com a Política de Privacidade do Alibaba Cloud Workspace SDK.
Não distribua esses arquivos a terceiros sem o consentimento da Alibaba Cloud.
Estrutura de diretórios
├── WuyingWebDemo.html // A sample page demonstrating SDK usage.
├── WuyingWebSDK.js // The SDK API file. You must reference this file in your frontend page.
└── sdk // Resource files for iframe embedding.
└── ASP
└── container.html
-
O Web.SDK.Demo é um projeto Vue. Para iniciar o projeto:
-
Verifique se o Node.js está instalado:
nodeA mensagem
Welcome to Node.jsindica que o Node.js está instalado.Caso não veja essa mensagem, instale o Node.js.
-
Acesse o diretório raiz do projeto Vue:
NotaSubstitua
<ProjectRootPath>pelo caminho do diretório raiz do projeto Vue.cd <ProjectRootPath> -
Instale as dependências:
npm i -
Inicie o projeto:
npm run devEm caso de sucesso, o sistema retorna uma URL acessível.
-
-
Para iniciar o WuyingWebDemo.html:
-
Acesse o diretório onde o arquivo HTML está localizado:
NotaSubstitua
<HTMLPath>pelo caminho do diretório do arquivo HTML.cd <HTMLPath> -
Inicie o servidor HTTP:
python3 -m http.server No navegador, abra
http://localhost:8000/WuyingWebDemo.html.
-
1,2 Fluxo de integração
1,3 Melhores práticas
Consulte Melhores práticas para integração rápida de cloud phones. A figura a seguir mostra a arquitetura de integração.
É possível utilizar vários métodos de logon para obter o ticket necessário ao SDK para se conectar a um cloud phone. O fluxograma a seguir ilustra esse processo.
Para códigos específicos, consulte os exemplos de código das APIs de ciclo de vida.
2. API de ciclo de vida
2,1 Inicializar e criar uma sessão
// Create a session using a ticket.
var userInfo = {
ticket: 'xxx',
};
var appInfo = {
osType: 'Android', // Required
appId: "android",
appInstanceId: "ai-xxxxxx", // The appInstanceId starts with 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);
// Create a session using an authCode.
var userInfo = {
authCode: authCode,
};
var appInfo = {
osType: 'Android', // Required
appId: "android",
resourceId: "p-xxxxxx", // The resourceId starts with 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);
// Create a session using a loginToken or stsToken.
var userInfo = {
sessionId: sessionId,
loginToken: loginToken,
};
var appInfo = {
osType: 'Android', // Required
appId: "android",
resourceId: "p-xxxxxx", // The resourceId starts with 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);
Parâmetros de createSession
|
Parâmetro |
Tipo |
Obrigatório |
Descrição |
|
id |
string |
Sim |
Defina como a constante |
|
sessionParams |
SessionParam |
Sim |
Os parâmetros para criação de uma sessão. Consulte 4,1 SessionParam. |
Parâmetros de sessionParams
-
userInfo:
sessionId: OSessionIdretornado pela operaçãoGetLoginTokenouGetStsToken.authCode: O código de autorização obtido ao chamar a API GetAuthCode.loginToken: O token de login obtido ao chamar a API GetLoginToken.
Existem dois métodos de logon: logon sem autorização e logon com conta de conveniência. O logon com conta de conveniência depende do sistema de usuários do Alibaba Cloud Workspace. Já o logon sem autorização permite usar seu próprio sistema de usuários. O parâmetro de autenticação para logon sem autorização é authCode, enquanto para logon com conta de conveniência é loginToken. O ticket é a credencial para conexão a uma instância. Tanto loginToken quanto authCode são convertidos em um ticket para conectar à instância. Especifique um dos seguintes parâmetros: authCode, ticket ou loginToken.
-
appInfo: Informações sobre a instância.
-
resourceId:Se fizer logon com uma conta de conveniência, chame a operação DescribeUserResources no cliente para obter o valor
ResourceId.Se fizer logon sem autorização, chame a operação DescribeAndroidInstances no servidor para obter o valor
PersistentAppInstanceId.
openType: Como abrir o cloud phone. Consulte a enumeração
openTypeneste documento.
-
2,2 Estabelecer uma conexão
session.start();
2,3 Encerrar uma conexão
session.stop();
2,4 Callbacks
API: addHandle(name: SessionEventType, callback: Function)
Parâmetros:
|
Parâmetro |
Tipo |
Descrição |
|
name |
string |
O tipo de evento a ser monitorado. Consulte 5,9 SessionEventType. |
|
callback |
Function |
A função de callback. |
Exemplo:
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. API
API | Descrição |
WebSDK.apiVersion | Retorna o número da versão do WebSDK como uma |
setInputEnabled(param: boolean) enableInput(param: boolean) | Ativa ou desativa a entrada.
|
enableKeyBoard(param: boolean) | Ativa ou desativa o teclado virtual no cloud phone. |
setClipboardEnabled(param: boolean) | Ativa ou desativa a área de transferência. |
setMicrophoneEnabled(param: boolean) | Ativa ou desativa o microfone. |
setTouchEnabled(param: boolean) | Ativa ou desativa a entrada por toque. |
setUiParams(param: UiConfig) | Define a configuração de UI após o estabelecimento da sessão, como mostrar ou ocultar o menu e forçar o modo paisagem. Nota Consulte 4,4 UiConfig. Exemplo: |
dataChannel | Um canal de dados personalizado para enviar e receber dados entre o cliente e a nuvem. |
lyncChannel | Um canal para o cliente enviar comandos ADB. |
4. Parâmetros
4,1 SessionParam
Parâmetros para criação de uma sessão.
|
Parâmetro |
Tipo |
Obrigatório |
Descrição |
|
openType |
OpenType |
Sim |
Define se a página será aberta em um iframe incorporado ou em uma nova aba. |
|
iframeId |
string |
Não |
Obrigatório se a página for aberta em um iframe. |
|
sdkPath |
string |
Não |
O caminho para o arquivo do SDK. Se deixado em branco, o sistema usa o caminho relativo padrão. Exemplo: |
|
resourceType |
ResourceType |
Sim |
O tipo de recurso. Atualmente, apenas páginas de conexão local são suportadas. |
|
connectType |
ConnectType |
Sim |
Define se a conexão será feita a um cloud phone ou a um computador em nuvem. |
|
isOverseas |
boolean |
Não |
Indica se o acesso é feito de uma localização no exterior. Padrão: |
|
userInfo |
UserInfo |
Sim |
As informações de autenticação do usuário. |
|
regionId |
string |
Sim |
Obrigatório ao conectar-se a um cloud phone. A região onde o cloud phone está localizado. |
|
appInfo |
AppInfo |
Não |
Informações sobre o aplicativo a ser iniciado no cloud phone. |
|
fileInfo |
FileInfo |
Não |
Parâmetros para o drive em nuvem. |
|
uiConfig |
UiConfig |
Não |
Configurações de UI para a página de conexão. |
|
logDisabled |
bool |
Não |
Define se as estatísticas do ARMS devem ser desativadas. Padrão: |
|
loginType |
LoginType |
Não |
O método de login. Padrão: conta do Alibaba Cloud Workspace. |
|
networkAccessType |
string |
Não |
O tipo de acesso à rede, como login via VPC. Padrão: vazio. |
4,2 UserInfo
Contém as informações de autenticação do usuário. Escolha um dos seguintes parâmetros: authCode, ticket ou loginToken. O authCode é obtido de um fluxo de login pré-autorizado. O loginToken é obtido de um login com conta de conveniência. É possível obter um ticket fazendo uma solicitação com um authCode ou um loginToken.
|
Parâmetro |
Tipo |
Obrigatório |
Descrição |
|
authCode |
string |
Sim |
Uma credencial de login única. Este parâmetro tem a maior prioridade. |
|
ticket |
string |
Sim |
A partir da v1.4.7, é possível usar um ticket para conectar diretamente. |
|
loginToken |
string |
Sim |
A credencial de autenticação para uma conta de conveniência. |
|
sessionId |
string |
Sim |
O ID de sessão obtido de uma solicitação |
4,3 AppInfo
Parâmetros para iniciar um cloud phone.
|
Parâmetro |
Tipo |
Obrigatório |
Descrição |
|
osType |
string |
Sim |
Deve ser definido como |
|
appId |
string |
Sim |
O ID persistente da instância do aplicativo ( |
|
appVersion |
string |
Não |
A versão do aplicativo a ser iniciada. |
|
loginRegionId |
string |
Sim |
A região onde os recursos do cloud phone estão localizados. |
|
connConfig |
ConnConfig |
Não |
Parâmetros de configuração de conexão. |
|
appInstanceGroupId |
string |
Não |
O ID do grupo de entrega. |
|
appInstanceId |
string |
Não |
O ID da instância. Obrigatório ao estabelecer uma conexão com um ticket. Exemplo: |
|
taskId |
string |
Não |
O ID da tarefa de inicialização do aplicativo. |
|
bizRegionId |
string |
Não |
A região onde os recursos do aplicativo estão localizados. |
|
productType |
string |
Não |
O tipo de grupo de entrega. Para cloud phones, este valor deve ser |
4,4 UiConfig
Configurações de UI para a página de conexão.
|
Parâmetro |
Tipo |
Obrigatório |
Descrição |
|
toolbar |
ToolBarConfig |
Não |
Configurações de exibição da barra de ferramentas. |
|
exitCheck |
bool |
Não |
Define se um prompt de confirmação será exibido quando o usuário sair da página. Padrão: ativado. |
|
rotateDegree |
number |
Não |
Força o modo paisagem ( |
|
vconsoleVisiable |
bool |
Não |
Define se a caixa de depuração vConsole será exibida. |
|
debugPanelVisiable |
bool |
Não |
Define se o painel de depuração com métricas como taxa de bits e taxa de quadros será exibido. |
|
reconnectType |
ReconnectType |
Não |
O estilo da caixa de diálogo de prompt de reconexão. |
|
defaultResolution |
ResolutionType |
Não |
A resolução padrão para a conexão inicial. Padrão: |
|
language |
Language |
Não |
O idioma para prompts internos. Padrão: Chinês Simplificado. |
|
allowErrorDialog |
bool |
Não |
Define se caixas de diálogo de erro serão exibidas. |
|
backgroundColor |
string |
Não |
Cor de fundo personalizada para a tela de carregamento. |
|
backgroundImg |
string |
Não |
Imagem de fundo personalizada para a tela de carregamento. |
4,5 ToolBarConfig
Configurações de exibição da barra de ferramentas.
|
Parâmetro |
Tipo |
Obrigatório |
Descrição |
|
visible |
bool |
Não |
Define se a barra de ferramentas será exibida. |
|
noMenu |
bool |
Não |
Define se o DesktopAssistant pode abrir o menu de contexto. Padrão: |
4,6 ConnConfig
Parâmetros de configuração de conexão.
|
Parâmetro |
Tipo |
Obrigatório |
Descrição |
|
decodeType |
ConnDecodeType (enumeração numérica) |
Não |
O método de decodificação. |
|
playSoundBackground |
bool |
Não |
Define se o som continuará sendo reproduzido quando o aplicativo for executado em segundo plano. |
5. Tipos de enumeração
5,1 Tipo de abertura
Como a sessão do cloud phone é aberta.
|
Valor |
Descrição |
|
newTab |
Abre a sessão em uma nova aba do navegador. |
|
inline |
Abre a sessão em um iframe incorporado. |
|
urlScheme |
Inicia a sessão usando o cliente local. Requer o cliente Alibaba Cloud Workspace V6.2 ou posterior. |
5,2 Tipo de conexão
Define se um computador em nuvem ou um cloud phone será iniciado.
|
Valor |
Descrição |
|
app |
Inicia um cloud phone. |
|
desktop |
Inicia um computador em nuvem. |
O serviço Cloud Phone usa atualmente o tipo app. Ao conectar-se a um Cloud Phone, o parâmetro connectType é fixado como app.
5,3 Tipo de recurso
Define se a página de conexão local ou o cliente web do Alibaba Cloud Workspace será aberto.
|
Valor |
Descrição |
|
local |
Abre a página HTML de conexão local. |
A integração do Wuying Cloud Phone usa o valor codificado local.
5,4 Tipo de reconexão
O estilo de UI do prompt de reconexão.
|
Valor |
Descrição |
|
simple |
Um indicador de carregamento simples. |
|
normal |
Uma caixa de diálogo com um cronômetro regressivo. |
5,5 Tipo de resolução
A resolução padrão para a conexão inicial. As configurações do usuário substituem este padrão.
|
Valor |
Descrição |
|
A |
Prioriza a velocidade. Usa o tamanho atual da janela. |
|
B |
Prioriza a qualidade. Usa o tamanho atual da janela multiplicado por |
5,6 Tipo de cobrança
O método de faturamento do cloud phone.
|
Valor |
Descrição |
Suportado desde |
|
PostPaid |
pagamento conforme o uso |
1.4.0 |
|
PrePaid |
assinatura |
1.4.0 |
5,7 Idioma
A configuração de idioma. Padrão: zh-CN.
|
Valor |
Descrição |
|
zh-CN |
Chinês Simplificado |
|
en-US |
Inglês |
|
ja-JP |
Japonês |
5,8 Tipo de login
O método para fazer logon no cloud phone.
|
Valor |
Descrição |
|
aliyunLogin |
Fazer logon com uma conta Alibaba Cloud. |
|
normalLogin |
Login com conta do Alibaba Cloud Workspace (o Cloud Phone suporta apenas |
5,9 Tipo de evento de sessão
Tipos de eventos para uma sessão, incluindo eventos específicos de cloud phones.
|
Valor |
Descrição |
Suportado desde |
|
getConnectionTicketInfo |
Acionado quando uma conexão com um cloud phone é iniciada. |
1.0.0 |
|
onConnected |
Acionado quando uma conexão com um cloud phone é estabelecida. |
1.0.0 |
|
onDisConnected |
Acionado quando a conexão com o cloud phone é encerrada. |
1.0.0 |
|
onRuntimeMsg |
Uma mensagem enviada do ambiente de execução para o SDK. |
1.1.0 |
|
networkData |
Métricas de desempenho de rede. |
1.3.1 |
|
onError |
Acionado quando ocorre um erro durante a conexão. |
1.4.1 |
5,10 Tipo de decodificação de conexão
O tipo de decodificação para o stream.
|
Valor |
Descrição |
Suportado desde |
|
0 |
decodificação por software |
1.2.0 |
|
1 |
decodificação por hardware |
1.2.0 |
|
2 |
WebRTC |
1.2.0 |
5,11 Tipo de protocolo
O tipo de protocolo.
|
Valor |
Descrição |
Suportado desde |
|
ASP |
Protocolo ASP proprietário da Alibaba Cloud. Cloud phones suportam apenas este protocolo. |
1.3.0 |
|
HDX |
Protocolo Citrix |
1.3.0 |
Códigos de erro
Erros de onDisconnected
|
Código |
Parâmetro |
Descrição |
|
0 |
ASP_CLIENT_DISCONNECT_CONNECT_ERROR |
Desconectado. |
|
1 |
ASP_CLIENT_DISCONNECT_SOCKET_CLOSE |
O socket foi fechado. |
|
2 |
ASP_CLIENT_DISCONNECT_WEBRTC_CLOSE |
WebRTC fechado. |
|
25 |
Falha na verificação do ticket. Este erro também ocorre se você tentar reutilizar um ticket de uma sessão desconectada para uma nova conexão. |
|
|
1206 |
Um ticket suporta apenas uma conexão simultânea. Este erro ocorre se você tentar iniciar uma nova conexão enquanto o cloud phone já está conectado. |
|
|
1207 |
Reiniciar a instância invalida o ticket. |
|
|
2000 |
ASP_CLIENT_DISCONNECT_OK |
O cloud phone desconectou normalmente. |
|
2001 |
ASP_CLIENT_DISCONNECT_CLOUD_APP_STOP |
O aplicativo em nuvem foi fechado. |
|
2002 |
ASP_CLIENT_DISCONNECT_CLIENT_PREEMPTION |
A sessão atual do cloud phone foi preemptada. |
|
2003 |
ASP_CLIENT_DISCONNECT_GUEST_SHUTDOWN_REBOOT |
O guest reiniciou. |
|
2004 |
O usuário atual desconectou. |
|
|
2027 |
O modo de recebimento de stream mudou. |
|
|
2200 |
ASP_CLIENT_RTT_TIMEOUT |
Tempo limite de RTT. |
|
2201 |
ASP_CLIENT_NET_ERROR_IO |
Erro de I/O de rede. |
|
2202 |
ASP_CLIENT_UPDATE_TICKET_FAILED |
Falha ao atualizar o ticket. |
Erros de onError
Formato: {code: string, message: string, api: string}. O parâmetro message contém o requestId, e o parâmetro api especifica a solicitação que relatou o erro.
|
Código |
Descrição |
|
AccountNotAvailable |
A conta de domínio está bloqueada, desativada ou expirada. Entre em contato com o administrador de TI ou o administrador do controlador de domínio para resolver isso. |
|
ClientLockedForAliasFailed |
Você atingiu o número máximo de tentativas incorretas. Tente novamente em 5 minutos. |
|
content-monthpackageenterpostpaidphase |
O pacote de assinatura deste cloud phone foi esgotado para o ciclo de faturamento atual. O uso subsequente será cobrado com base no pagamento conforme o uso. |
|
content-recordingscreen |
O administrador de TI da sua empresa ativou a gravação de tela e auditoria para o seu cloud phone, e todas as operações serão gravadas. Se tiver dúvidas sobre este recurso, entre em contato com o administrador. |
|
desktop-AgentUnbinding |
A conexão com um novo cloud phone temporário falhou porque o cloud phone temporário anterior ainda está sendo desassociado. Tente conectar novamente mais tarde. |
|
desktop-AssignUserFailed |
Falha ao atribuir o cloud phone. Tente novamente mais tarde. |
|
desktop-ConnectTicket.Timeout |
A conexão com o cloud phone falhou devido a tempo limite. Reinicie o cloud phone e tente conectar novamente. |
|
desktop-DesktopAgentFileLose |
A conexão falhou porque um arquivo de processo principal do cloud phone está ausente. Reinicie o cloud phone e conecte novamente. Se o problema persistir, entre em contato com o administrador de TI. |
|
desktop-DesktopContainSecuritySoftware |
Um software de segurança instalado no cloud phone está interrompendo sua conexão com o serviço de gerenciamento. Entre em contato com o administrador de TI para desativar o software de segurança e tente conectar novamente. |
|
desktop-DesktopContainVpn |
Um software VPN instalado no cloud phone está interrompendo sua conexão com o serviço de gerenciamento. Você pode reiniciar o cloud phone para resolver esse problema. Se a conexão ainda falhar, entre em contato com o administrador de TI. |
|
desktop-DesktopGuestStop |
A conexão falhou porque o cloud phone não está no estado "Running". |
|
desktop-DesktopNetworkAnomaly |
Um problema de rede no cloud phone interrompeu sua conexão com o serviço de gerenciamento. Você pode reiniciar o cloud phone para resolver esse problema. Se a conexão ainda falhar, entre em contato com o administrador de TI. |
|
desktop-DesktopNetworkError |
Um problema de rede no cloud phone interrompeu sua conexão com o serviço de gerenciamento. Você pode reiniciar o cloud phone para resolver esse problema. Se a conexão ainda falhar, entre em contato com o administrador de TI. |
|
desktop-DesktopResourceStatusInvalid |
A conexão com o cloud phone falhou porque a instância ECS subjacente não está no estado "Running". Reinicie o cloud phone e tente conectar novamente. |
|
desktop-DesktopResourceStop |
A conexão com o cloud phone falhou porque a instância ECS subjacente está parada. Reinicie o cloud phone e tente conectar novamente. |
|
desktop-DesktopsUnderMaintenance |
A conexão falhou porque o cloud phone não está no estado "Running". |
|
desktop-DesktopUnavailable |
A conexão falhou. Tente novamente mais tarde. Se o problema persistir, entre em contato com o administrador de TI para verificar o status do cloud phone. |
|
desktop-DistributeLockFailed |
A conexão falhou porque muitos usuários estão tentando se conectar a cloud phones temporários. Tente conectar novamente mais tarde. |
|
desktop-GENERAL_ERROR |
Ocorreu um erro de serviço. Tente conectar ao cloud phone novamente. Se o problema persistir, entre em contato com o administrador de TI. |
|
desktop-GET_TICKET_LOCK |
As solicitações de conexão do cloud phone são muito frequentes. Tente novamente mais tarde. |
|
desktop-INSUFFICIENT_QUOTA |
Nenhum cloud phone temporário está disponível porque a cota de cloud phone da conta do administrador de TI é insuficiente. Entre em contato com o administrador de TI para obter assistência. |
|
desktop-INTERNAL_ERROR |
Ocorreu um erro de serviço. Tente conectar ao cloud phone novamente. Se o problema persistir, entre em contato com o administrador de TI. |
|
desktop-InvalidBundleId.NotFound |
O modelo de imagem para este cloud phone é inválido. Entre em contato com o administrador de TI. |
|
desktop-InvalidClientIp.Policy |
Você não pode se conectar a partir do seu endereço IP atual porque o administrador de TI configurou uma lista de permissões de endereços IP para este cloud phone. Entre em contato com o administrador de TI para obter assistência. |
|
desktop-InvalidClientType.AccessDenied |
Seu administrador de TI proibiu a execução deste cloud phone no cliente atual. Para usar este cloud phone, entre em contato com o administrador de TI. |
|
desktop-InvalidDesktopId.NotFound |
Seu administrador de TI revogou sua permissão para usar este cloud phone. |
|
desktop-InvalidDesktopId.Status |
A conexão falhou porque o cloud phone não está no estado "Running". |
|
desktop-InvalidDesktopStatus.NotRunning |
O cloud phone falhou ao desligar devido a um erro no servidor. Tente novamente mais tarde ou entre em contato com o administrador de TI. |
|
desktop-InvalidDesktopStatus.NotStopped |
O cloud phone falhou ao iniciar devido a um erro no servidor. Tente novamente mais tarde ou entre em contato com o administrador de TI. |
|
desktop-InvalidDesktopStatusInvalid |
A conexão falhou porque o cloud phone não está no estado "Running". |
|
desktop-InvalidLiteConnectionCheck |
O cloud phone falhou ao reconectar devido a um erro no serviço de protocolo. Tente conectar novamente. |
|
desktop-NoEnoughDesktops |
Nenhum cloud phone temporário pode ser atribuído devido às configurações do seu administrador de TI. Entre em contato com o administrador de TI. |
|
desktop-NotFindDesktopId |
O administrador de TI liberou este cloud phone. |
|
desktop-NotFoundUserDesktop |
Seu administrador de TI revogou sua permissão para usar este cloud phone. |
|
desktop-PermissionDeny.Desktop |
Seu administrador de TI revogou suas permissões. Para continuar usando o cloud phone, entre em contato com o administrador de TI para restaurar suas permissões. |
|
desktop-RES_GW_ERROR |
Ocorreu um erro de serviço. Tente conectar ao cloud phone novamente. Se o problema persistir, entre em contato com o administrador de TI. |
|
desktop-SDK.ReadTimeout |
Ocorreu um erro de serviço. Tente conectar ao cloud phone novamente. Se o problema persistir, entre em contato com o administrador de TI. |
|
desktop-ServiceUnavailable |
A conexão do serviço atingiu o tempo limite. Tente conectar ao cloud phone novamente. Se o problema persistir, entre em contato com o administrador de TI. |
|
desktop-THROTTLING_USER |
Ocorreu um erro de serviço. Tente conectar ao cloud phone novamente. Se o problema persistir, entre em contato com o administrador de TI. |
|
desktop-UnavailableDesktop |
O logon do cloud phone atingiu o tempo limite. Reconecte ou reinicie o cloud phone para resolver esse problema. Se a conexão ainda falhar, entre em contato com o administrador de TI. |
|
desktop-UnavailableDesktop.2901 |
A conexão com o cloud phone falhou porque o serviço de protocolo não conseguiu se conectar ao ambiente em nuvem. Reinicie o cloud phone para resolver esse problema. Se a conexão ainda falhar, entre em contato com o administrador de TI. |
|
desktop-UnavailableDesktop.2902 |
A conexão com o cloud phone falhou porque o serviço de protocolo não está respondendo. Reinicie o cloud phone para resolver esse problema. Se a conexão ainda falhar, entre em contato com o administrador de TI. |
|
desktop-UnavailableDesktop.2903 |
A conexão com o cloud phone falhou devido a um problema no ambiente em nuvem. Reinicie o cloud phone para resolver isso. Se a conexão ainda falhar, entre em contato com o administrador de TI. |
|
desktop-UnavailableDesktop.2904 |
A conexão com o cloud phone falhou devido a um problema no ambiente em nuvem. Reinicie o cloud phone para resolver isso. Se a conexão ainda falhar, entre em contato com o administrador de TI. |
|
desktop-UnavailableDesktop.2905 |
A conexão falhou devido a um tempo limite ao fazer logoff de outra sessão neste cloud phone compartilhado. Reconecte ou reinicie o cloud phone. |
|
desktop-UnavailableDesktop.2906 |
A conexão falhou devido a um tempo limite de resposta durante o logon do sistema. Reconecte ou reinicie o cloud phone. |
|
desktop-UnavailableDesktop.2907 |
A conexão com o cloud phone falhou porque o serviço de protocolo ainda está iniciando. Tente conectar novamente mais tarde ou reinicie o cloud phone. Se o problema persistir, entre em contato com o administrador de TI. |
|
desktop-UnavailableDesktop.NotRegistered |
O administrador de TI excluiu este cloud phone. |
|
desktop-UnavailableDesktop.ServerNotReady |
A conexão falhou devido a um erro durante o logon do sistema. Entre em contato com o administrador de TI para restaurar suas permissões de uso do cloud phone. |
|
desktop.linux-UnavailableDesktop.AuthFailed |
A conexão com o cloud phone pode ter falhado porque a instância não está mais associada ao domínio. Reinicie o cloud phone e tente conectar novamente, ou entre em contato com o administrador de TI. |
|
DesktopNetworkError.AbortBySoftware |
Um problema de rede no cloud phone interrompeu sua conexão com o serviço de gerenciamento. Reinicie o cloud phone para resolver esse problema. |
|
DesktopNetworkError.BadHandShake |
Um problema de rede no cloud phone interrompeu sua conexão com o serviço de gerenciamento. Reinicie o cloud phone para resolver esse problema. |
|
DesktopNetworkError.BindAddressFailed |
Um problema de rede no cloud phone interrompeu sua conexão com o serviço de gerenciamento. Reinicie o cloud phone para resolver esse problema. |
|
DesktopNetworkError.ConnectAddressFailed |
Um problema de rede no cloud phone interrompeu sua conexão com o serviço de gerenciamento. Reinicie o cloud phone para resolver esse problema. |
|
DesktopNetworkError.ConnectionClosedError |
Um problema de rede no cloud phone interrompeu sua conexão com o serviço de gerenciamento. Reinicie o cloud phone para resolver esse problema. |
|
DesktopNetworkError.ConnectionRefusedError |
Um problema de rede no cloud phone interrompeu sua conexão com o serviço de gerenciamento. Reinicie o cloud phone para resolver esse problema. |
|
DesktopNetworkError.ConnectionResetError |
Um problema de rede no cloud phone interrompeu sua conexão com o serviço de gerenciamento. Reinicie o cloud phone para resolver esse problema. |
|
DesktopNetworkError.ConnectionTimeout |
Um problema de rede no cloud phone interrompeu sua conexão com o serviço de gerenciamento. Reinicie o cloud phone para resolver esse problema. |
|
DesktopNetworkError.DnsLookupFailed |
Um problema de rede no cloud phone interrompeu sua conexão com o serviço de gerenciamento. Reinicie o cloud phone para resolver esse problema. |
|
DesktopNetworkError.Forbidden |
Um problema de rede no cloud phone interrompeu sua conexão com o serviço de gerenciamento. Reinicie o cloud phone para resolver esse problema. |
|
DesktopNetworkError.ReceivedUnexpectedEOF |
Um problema de rede no cloud phone interrompeu sua conexão com o serviço de gerenciamento. Reinicie o cloud phone para resolver esse problema. |
|
DesktopNetworkError.SystemOutOfResource |
Um problema de rede no cloud phone interrompeu sua conexão com o serviço de gerenciamento. Reinicie o cloud phone para resolver esse problema. |
|
DesktopNetworkError.UnKnowError |
Um problema de rede no cloud phone interrompeu sua conexão com o serviço de gerenciamento. Reinicie o cloud phone para resolver esse problema. |
|
DesktopStatus-Desc-Updating |
Este cloud phone está temporariamente indisponível enquanto sua configuração está sendo alterada. |
|
DesktopStatus-Repairing |
Reparando. |
|
DesktopStatus-Updating |
Atualizando configuração. |
|
DeviceNotInManage |
Falha no logon. A autenticação de dispositivo confiável está ativada para a rede corporativa ou organização. Entre em contato com o administrador para desativar a autenticação de dispositivo confiável ou adicionar manualmente o terminal atual como um dispositivo confiável. |
|
DirectoryLoginUnsupported |
As informações inseridas estão incorretas. Use o ID da sua organização para fazer logon. |
|
DomainFailed |
A conexão com o cloud phone falhou porque o sistema não pôde ser associado a um domínio. |
|
DomainRelationshipFailed |
A conexão com o cloud phone falhou devido a um problema com a relação de confiança de domínio do sistema. |
|
ExistedEmail |
O endereço de e-mail já está em uso. Insira um endereço de e-mail diferente. |
|
ExistedEndUserId |
O nome de usuário já está em uso. Insira um nome de usuário diferente. |
|
ExistedPhoneNumber |
O número de telefone já está em uso. Insira um número de telefone diferente. |
|
ExpiredEmailVerifyCode |
O código de verificação de e-mail expirou. Solicite um novo. |
|
FailedToSendEmailVerifyCode |
Falha ao enviar o código de verificação de e-mail. Tente novamente. |
|
ForbidByClientVersionForBusiness |
Este ID de organização é para uma edição empresarial. Você deve atualizar o cliente para a versão mais recente para fazer logon. |
|
ForbidByPasswordPolicy |
Falha ao alterar a senha. Seu administrador de TI desativou o recurso "Alterar senha de logon". |
|
FOTA_DESKTOP_IN_USE |
O cloud phone "%s" está em uso. Desconecte-se dele e tente atualizar novamente. |
|
FOTA_SNAPSHOT_IN_PROGRESS |
A imagem não pode ser atualizada porque o sistema está criando um snapshot para o cloud phone "%s". Tente novamente mais tarde. |
|
GuestOperateDesktopFail |
Falha ao desligar ou reiniciar o cloud phone. |
|
GuestOperateDesktopTimeout |
A operação de desligamento ou reinicialização que você realizou no cloud phone falhou devido a um tempo limite de resposta. |
|
GuestRebootOperateFail |
Falha ao reiniciar o cloud phone. |
|
GuestRebootOperateTimeout |
A operação de reinicialização que você realizou no cloud phone falhou devido a um tempo limite de resposta. |
|
GuestStopOperateFail |
Falha ao desligar o cloud phone. |
|
GuestStopOperateTimeout |
A operação de desligamento que você realizou no cloud phone falhou devido a um tempo limite de resposta. |
|
InvalidDirectoryType |
O logon de usuário RAM não é mais suportado. Entre em contato com o administrador de TI. |
|
InvalidEmailVerifyCode |
O código de verificação de e-mail está incorreto. Insira-o novamente. |
|
InvalidMfaDeviceStatus |
O dispositivo virtual de autenticação multifator é inválido. Use o dispositivo associado à sua conta. |
|
InvalidPassword |
O nome de usuário ou a senha estão incorretos. |
|
LoginError.MissingConcatForVerify |
Você não pode concluir a verificação de identidade porque esta é uma conta ativada pelo administrador. Entre em contato com o administrador de TI. |
|
LoginForbidden |
Falha no logon. A autenticação de dispositivo confiável está ativada para a rede corporativa ou organização. Entre em contato com o administrador para desativar a autenticação de dispositivo confiável ou adicionar manualmente o terminal atual como um dispositivo confiável. |
|
LoginForbidden.LockedByAdmin |
A conta de conveniência está bloqueada. Entre em contato com o administrador de TI para desbloqueá-la manualmente. |
|
LoginForbiddenByDevice |
Falha no logon. O administrador especificou que este terminal só pode ser acessado por usuários específicos, e sua conta não está autorizada. |
|
LoginForbiddenByUntrustedDevice |
Falha no logon. O administrador ativou "Bloquear Logons de Terminais Não Confiáveis". O administrador precisa adicionar este terminal como um dispositivo confiável ou desativar este recurso. |
|
LoginForbiddenByUser |
Falha no logon. O administrador ativou restrições de terminal de logon do usuário. Faça logon a partir de um terminal especificado. |
|
MfaClientNotSupport |
A versão do cliente é muito antiga para suportar este método de autenticação multifator. Atualize o cliente. |
|
MfaNotAllowed |
Sua conta não possui as informações necessárias para este método de autenticação multifator. Entre em contato com o administrador de TI para adicionar as informações. |
|
MfaTypeNotAllowed |
Seu administrador de TI não ativou este método de autenticação multifator. |
|
MfaUserGoingToBeLocked |
O código de verificação está incorreto. Se você inserir um código incorreto 10 vezes consecutivas, sua conta será bloqueada por 20 minutos. |
|
MfaUserNotExist |
Esta conta foi excluída. Entre em contato com o administrador de TI para obter detalhes. |
|
MfaVerifyCodeDiscarded |
O código de verificação é inválido. Solicite um novo. |
|
PhoneIsNotRegistered |
O número de telefone está incorreto ou o administrador não associou este número de telefone à conta. |
|
SessionForceQuit |
Você foi desconectado automaticamente. Isso pode ter ocorrido porque você fez logoff de outro terminal ou porque o número de terminais conectados excede o limite definido pelo administrador de TI. |
|
StartApplicationGuestTimeout |
O aplicativo falhou ao iniciar devido a uma conexão de rede instável. Tente novamente. |
|
StartDesktopFail |
Falha ao iniciar o cloud phone. |
|
ThrottlingSendEmailVerifyCodeLimit |
Você só pode solicitar um código de verificação uma vez por minuto. |
|
UnavailableDesktop.2907 |
A conexão com o cloud phone falhou porque o serviço de protocolo ainda está iniciando. Tente conectar novamente mais tarde ou reinicie o cloud phone. Se o problema persistir, entre em contato com o administrador de TI. |
FAQ
Desativar o DesktopAssistant
Desative o DesktopAssistant inicializando uiConfig ao chamar createSession.
uiConfig: {
toolbar: {
visible: false,
},
},
Enviar comandos ADB via canal ASP
Inicialize lyncChannelConfig ao chamar createSession.
lyncChannelConfig: [
{
lyncChannelName: "lync_adb_shell",
},
],
Para enviar um comando, chame session.sendLyncMessage. Por exemplo:
session.sendLyncMessage(
"lync_adb_shell",
JSON. stringify({
id: crypto. randomUUID(),
cmd: 'input keyevent KEYCODE_VOLUME_UP',
})
);
Para receber o resultado do comando, adicione um listener chamando session.addLyncListener. Por exemplo:
session.addLyncListener('lync_adb_shell', 'onReceivedLyncData', data => console.log('data from lync_adb_shell', data));
Comandos comuns:
|
Recurso |
Comando |
|
Tecla Voltar |
input keyevent KEYCODE_BACK |
|
Tecla Home |
input keyevent KEYCODE_HOME |
|
Tecla Alternar |
input keyevent KEYCODE_APP_SWITCH |
|
Silenciar |
input keyevent 164 |
|
Aumentar volume |
input keyevent KEYCODE_VOLUME_UP |
|
Diminuir volume |
input keyevent KEYCODE_VOLUME_DOWN |
|
Ocultar barra de navegação |
setprop persist.wy.hasnavibar false; killall com.android.systemui |
|
Mostrar barra de navegação |
setprop persist.wy.hasnavibar true; killall com.android.systemui |
|
Captura de tela |
screencap -p /sdcard/Download/abc.png |
Uso da câmera
Ao usar a demo para conectar-se a um cloud phone, observe que os navegadores controlam as permissões da câmera. Para que a câmera funcione corretamente, a URL da demo deve começar com
https.Para usar apenas a câmera frontal ou traseira do cliente, utilize as seguintes configurações.
// Front camera
session.setLocalConfig('setCameraType', 1);
// Rear camera
session.setLocalConfig('setCameraType', 2);
Uso da área de transferência
-
Se a área de transferência não estiver funcionando:
Verifique se as permissões da área de transferência estão ativadas no seu navegador.
No Cloud Phone console, verifique a política da instância para garantir que a transferência bidirecional da área de transferência esteja ativada.