Com TeamViewer Software Development Kit (SDK) você pode utilizar a funcionalidade completa Assist AR e fornecer a melhor experiência de suporte remoto AR a seus clientes, incorporando as capacidades de assistência remota AR em seus próprios aplicativos móveis.

O SDK permite que você tenha conexões seguras e compatíveis com a GDPR com os dispositivos de seu cliente.

Este artigo se aplica a todos os usuários do TeamViewer Assist AR

Pré-requisitos

  • iOS 14.1 e superior
  • Uma conta existente TeamViewer

Se você não tiver uma conta TeamViewer, siga os passos abaixo para criar uma:

  1. Abra o Management Console e Clique no Inscreva-se.
  2. Complete os passos para criar uma conta TeamViewer e valide seu endereço de e-mail.

Gerar uma chave API

1. Vá para https://login.teamviewer.com/ e entre usando sua conta TeamViewer.

2. Na parte inferior da página, clique em Apps.

3. Clique no botão Criar aplicativo.

4. Ativar o Token SDK móvel, digitar um nome e (opcional) adicionar uma breve descrição.

5. Ativar o iOS.

6. Clique em Criar.

Sua ficha é exibida ao abrir o aplicativo criado:

Copie esta ficha em sua prancheta e cole-a em um lugar seguro.

🚨IMPORTANTE: Não compartilhe este símbolo com ninguém!

Adquira o TeamViewer Mobile SDK

Há duas possibilidades de instalar o TeamViewer Mobile SDK:

A) Instalar o TeamViewer Mobile SDK via CocoaPods

A maneira mais fácil de obter o TeamViewer SDK é através de CocoaPods. Para adicionar o SDK ao seu projeto, acrescente isto ao seu arquivo de Pod:

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

B) Instalar manualmente

  1. O SDK está disponível para clientes com uma licença profissional Assist AR e é distribuído pela equipe de suporte TeamViewer.
  2. Faça o download do arquivo .zip, descomprima e copie todas as pastas xcframework incluídas dentro de sua pasta de projeto.
    • 📌Lembrete: O SDK é distribuído como XCFramework universal contendo ambas arquiteturas, braço iOS64 e Simulador x86. Atualmente não suportamos as arquiteturas Apple Silicon ou Mac Catalyst.
  3. Vincule as estruturas TVLocalizations e TeamViewerSDK ao seu projeto.
  4. Certifique-se de que a opção Embedar e Assinar esteja selecionada.
  5. Você também pode precisar se conectar contra o ARKit e o CallKit, dependendo de sua implementação.
  6. Somente se você planeja apoiar o CallKit: Link contra o CallKit.

Configurando seu projeto Xcode

O TeamViewer SDK usa a câmera e o microfone durante uma sessão de suporte remoto.

1. Adicione as seguintes chaves ao arquivo Info.Plist:

  • NSMicrofoneDescrição de uso
  • NSCameraDescrição de uso

Se você não adicionar essas chaves, o iOS encerrará a aplicação no momento em que o SDK tentar acessar o microfone ou a câmera.

Usando o TeamViewer SDK

🚨IMPORTANTE: O SDK é uma classe de instância única. Não se pode criar uma diretamente. Você deve acessar a instância compartilhada.

1. Inicializar a instância SDK com sua chave API obtida na seção Pré-requisitos.

2. Definir um delegado em conformidade com o protocolo TeamViewerSDKDelegate.

Isto garante que você seja capaz de reagir a eventos que acontecem durante a vida útil de sua conexão TeamViewer.

3. Conectar a um código de sessão

O SDK compartilhado fornece um método para estabelecer uma conexão com um código de sessão. Este código de sessão pode ser de dois tipos:

  • Suporte remoto ou
  • Assist AR

4. Crie códigos de sessão em seu cliente TeamViewer ou através do TeamViewer REST API.

O método connectToSessionCode retorna uma sessão TeamViewer.

🚨IMPORTANTE: Você é responsável por manter esta variável viva, e também responsável por liberá-la. Caso contrário, a sessão UI poderá ser mantida viva mesmo depois que a sessão remota tiver terminado.

🚨MPORTANTE: Uma vez que o SDK se conecta a um código de sessão, ele entra em estado de espera, você é notificado sobre a mudança de estado por meio do método de delegado handleSessionCodeOnline.

Neste ponto, não se deve permitir que o usuário se conecte a um código de sessão diferente. Só é permitido permitir que o usuário deixe a conexão atual.

No lado do apoiador, o código de sessão aparecerá como estando online, permitindo ao cliente estabelecer uma conexão com esse código de sessão.

Reagindo às conexões de entrada

O SDK fornece métodos de delegados para reagir a eventos de conexão de entrada.

Uma vez iniciada a conexão no lado TeamViewer, o SDK é notificado sobre esta tentativa de conexão através do método de delegado handleConnectionRequestWithAuthenticationData.

No parâmetro de dados de autenticação há o nome do apoiador, o tipo de conexão de entrada (ScreenShare ou Assist AR) e uma função de retorno de chamada para permitir ou rejeitar a conexão de entrada.

Se a conexão de entrada for aceita, a conexão TeamViewer correspondente é estabelecida.

  • Para a conexão ScreenShare, um prompt para microfone e compartilhamento de tela é mostrado ao usuário.

A IU de sua aplicação é agarrada usando o kit de replay e há comunicação VoIP bidirecional entre o usuário e o apoiador.

  • Para a conexão Assist AR, são mostradas as permissões do sistema para acesso de câmera e microfone. Se o usuário permitir isto, a sessão de AR é iniciada. Há comunicação VoIP bi-direcional entre o usuário e o apoiador.
  • O método de delegação handleConnectionRequestAbort deve ser implementado a fim de ser notificado quando o usuário remoto cancela o pedido de conexão. O usuário é responsável por limpar quaisquer avisos que sejam mostrados ao usuário, ou cancelar quaisquer notificações de chamadas recebidas do CallKit.

Reagindo a eventos opcionais SDK

  • handleSupporterConnected: Este método é chamado quando o apoiador terminou a sessão, também é chamado quando o usuário terminou localmente a sessão.
  • handleSupporterDisconnected: Este método é chamado quando o apoiador terminou a sessão, também é chamado quando o usuário terminou localmente a sessão.

💡Dica: Você deve limpar as referências à sessão, pois a sessão é considerada não mais válida neste momento.

  • handleError: Este método é chamado se o código de sessão ou o token API utilizado para estabelecer uma conexão não for válido.

💡Dica: Você deve limpar os recursos utilizados para a sessão atual, pois a sessão em si é considerada inválida.

Reagindo a eventos opcionais da sessão

  • handleSessionError: Isto é chamado quando ocorre um erro durante a sessão. Por exemplo, um recurso foi solicitado, mas a compatibilidade entre cliente e servidor não foi atendida.

💡Dica: Este erro é apenas informativo. Você pode escrevê-lo em um arquivo de log.

Nota sobre o suporte do CallKit

Se sua aplicação suporta o CallKit:

  • Forneça ao TeamViewer SDK informações sobre o identificador exclusivo de sua chamada.
  • TeamViewer pergunta ao sistema se há uma chamada em execução e não tenta estabelecer uma conexão VoIP se for este o caso.
  • Diga a TeamViewer que a chamada atual é sua para que possamos assumir a tubulação de áudio e iniciar a transmissão VoIP:
    1. Ligue para o método de configuração setupCallUUID.
    2. Diga ao SDK que sua chamada terminou chamando o método clearCallUUID.

Habilitando os modos de fundo

Certifique-se de que você tenha pelo menos um desses modos de fundo ativado em seu arquivo Info.plist:

  • Áudio,
  • AirPlay ou
  • Modo de fundo Voice over IP.

🚨IMPORTANTE: Se isso não for feito, o aplicativo será suspenso apenas alguns segundos após ser colocado em segundo plano durante uma sessão ativa TeamViewer.

Configuração de áudio

O SDK móvel funciona com os valores de configuração padrão da AVAudioSession.

  • Se você quiser sobrepor estes valores para suportar Bluetooth, Airplay mix, usar alto-falantes, etc., certifique-se de mudar isto antes de uma sessão ser estabelecida. No caso de sua aplicação silenciar outras aplicações, o momento recomendado para configurar a sessão de áudio é bem antes de aceitar a conexão.
  • Se sua aplicação mixar áudio com outras aplicações, você pode configurar as opções de áudio no lançamento da aplicação.

Desativar VoIP

Caso você queira usar outro meio para estabelecer comunicação de voz, você pode desativar o recurso VoIP inteiramente definindo as opções na instância compartilhada do SDK antes de estabelecer uma conexão.

Para mais informações, consulte a documentação da TVSDKOptions.

Documentação de classe

Todos os cabeçalhos públicos estão documentados. Para obter informações detalhadas sobre cada classe, consulte o conteúdo QuickHelp gerado pelo Xcode ('⌥ '+ clique no nome constante ou variável).