Con TeamViewer Software Development Kit (SDK) puede utilizar la funcionalidad completa de Assist AR y proporcionar la mejor experiencia de asistencia remota de RA a sus clientes mediante la incorporación de capacidades de asistencia remota de RA en sus propias aplicaciones móviles.

El SDK te permite disponer de conexiones seguras y conformes con la GDPR a los dispositivos de tus clientes.

Este artículo se aplica a tod@s l@s usuari@s de TeamViewer Assist AR.

Requisitos previos

  • iOS 14.1 y superior
  • Una cuenta existente en TeamViewer

Si no tienes una cuenta en TeamViewer, sigue los pasos que se indican a continuación para crear una:

  1. Visita https://login.teamviewer.com/ y haz clic en Registrarse.
  2. Completa los pasos para crear una cuenta y validar tu dirección de correo electrónico.

Generar una clave API

1) Vete a https://login.teamviewer.com/ e inicia sesión con tu cuenta de TeamViewer.

2) En la parte inferior de la página, haz clic en Aplicaciones.

3) Haz clic en el botón Crear aplicación.

4) Activa Mobile SDK Token, introduce un nombre y (opcional) añade una breve descripción.

5) Activa iOS.

6) Haz clic en Crear.

Tu token se muestra al abrir la aplicación creada:

Copia este token en tu portapapeles y pégalo en un lugar seguro.

🚨IMPORTANTE: ¡No compartas esta ficha con nadie!

Obtén el SDK para móviles de TeamViewer

Existen dos posibilidades para instalar el SDK de TeamViewer Mobile:

A. Instala el SDK TeamViewer Mobile a través de CocoaPods

La forma más sencilla de obtener el SDK de TeamViewer es a través de CocoaPods. Para añadir el SDK a tu proyecto, añade esto a tu archivo Pod:

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

B. Instalación manual

1) El SDK está disponible para los clientes con una licencia profesional de Assist AR y lo distribuye el equipo de asistencia de TeamViewer.

2) Descarga el archivo .zip, descomprímelo y copia todas las carpetas xcframework incluidas dentro de la carpeta de tu proyecto.

📌Nota: El SDK se distribuye como XCFramework universal que contiene ambas arquitecturas, iOS arm64 y Simulator x86. Actualmente no soportamos arquitecturas Apple Silicon o Mac Catalyst.

3) Vincula los frameworks TVLocalizations y TeamViewerSDK a tu proyecto.

4) Asegúrate de que la opción Incrustar y firmar está seleccionada.

5) Puedes que también necesites enlazar contra ARKit y CallKit, dependiendo de tu implementación.

6) Solo si tienes previsto admitir CallKit: Enlaza contra CallKit.

Configuración del proyecto Xcode

El SDK de TeamViewer utiliza la cámara y el micrófono durante una sesión de asistencia remota.

1) Añade las siguientes claves al archivo Info.Plist:

  • NSMicrophoneUsageDescription
  • NSCameraUsageDescription

Si no añades esas claves, iOS terminará la aplicación en el momento en que el SDK intente acceder al micrófono o a la cámara.

Uso del SDK TeamViewer

🚨IMPORTANTE: El SDK es una clase de instancia única. No puedes crearla directamente. Debes acceder a la instancia compartida.

1) Inicializa la instancia del SDK con tu clave de API obtenida en la sección Requisitos previos.

2) Establece un delegado conforme al protocolo TeamViewerSDKDelegate.

De este modo, podrás reaccionar a los acontecimientos que se produzcan durante la vida útil de tu conexión TeamViewer.

3) Conectarte a un código de sesión

El SDK compartido proporciona un método para establecer una conexión con un código de sesión. Este código de sesión puede ser de dos tipos:

  • Asistencia remota o
  • Assist AR

4) Crea códigos de sesión en tu cliente TeamViewer o a través de la API REST TeamViewer.

El método connectToSessionCode devuelve una sesión TeamViewer.

🚨IMPORTANTE: Eres responsable de mantener viva esta variable, y también responsable de liberar esta variable. De lo contrario, la interfaz de usuario de la sesión podría mantenerse activa incluso después de que la sesión remota haya finalizado.

🚨IMPORTANTE: Una vez que el SDK se conecta a un código de sesión, entra en un estado de espera, se te notifica sobre el cambio de estado a través del método delegado handle SessionCodeOnline.

En este punto, no debes permitir que el usuario se conecte a un código de sesión diferente. Sólo está autorizado permitir que el usuario abandone la conexión actual.

En el lado del partidario, el código de sesión aparecerá como en línea, permitiendo al cliente establecer una conexión con ese código de sesión.

Reacción ante las conexiones entrantes

El SDK proporciona métodos delegados para reaccionar a los eventos de conexión entrantes.

Una vez iniciada la conexión en TeamViewer, el SDK recibe una notificación sobre este intento de conexión a través del método delegado handle ConnectionRequestWithAuthenticationData.

En el parámetro de datos de autenticación se encuentra el nombre del partidario, el tipo de conexión entrante (ScreenShare o Assist AR) y una función callback para permitir o rechazar la conexión entrante.

Si se acepta la conexión entrante, se establece la conexión TeamViewer correspondiente.

  • En el caso de la conexión ScreenShare, se muestra al usuario una solicitud para compartir el micrófono y la pantalla.

La interfaz de usuario de su aplicación se captura mediante el kit de reproducción y existe una comunicación VoIP bidireccional entre el usuario y el colaborador.

  • Para la conexión Assist AR, se muestran los permisos del sistema para el acceso a la cámara y al micrófono. Si el usuario lo permite, se inicia la sesión de RA. Hay comunicación VoIP bidireccional entre el usuario y el partidario.
  • El método delegado handleConnectionRequestAbort debe ser implementado para ser notificado cuando el usuario remoto cancela la solicitud de conexión. Es responsable de borrar cualquier aviso que se muestre al usuario, o de cancelar cualquier notificación de llamada entrante de CallKit.

Reacción ante eventos opcionales del SDK

  • handleSessionCodeOnline: Este método se llama cuando el seguidor ha finalizado la sesión, también se llama cuando el usuario ha finalizado localmente la sesión.
  • handleSupporterDisconnected: Este método se llama cuando el seguidor ha finalizado la sesión, también se llama cuando el usuario ha finalizado localmente la sesión.

💡Sugerencia: Debes limpiar las referencias a la sesión ya que en este momento se considera que la sesión ya no es válida.

  • handleError: Este método se llama si el código de sesión o el token de API utilizado para establecer una conexión no son válidos.

💡Sugerencia: Debes limpiar los recursos utilizados para la sesión actual, ya que la propia sesión se considera inválida.

Reacción ante eventos opcionales de la sesión

  • handleSessionError: Se llama cuando se ha producido un error durante la sesión. Por ejemplo, se ha solicitado una función pero no se ha cumplido la compatibilidad entre cliente y servidor.

💡 Sugerencia: Este error es sólo informativo. Puede escribirlo en un archivo de registro.

Nota sobre la compatibilidad con CallKit

Si tu aplicación es compatible con CallKit:

  • Proporciona al SDK TeamViewer información sobre el identificador único de tu llamada.
  • TeamViewer pregunta al sistema si hay una llamada en curso y no intenta establecer una conexión VoIP si este es el caso.
  • Díle a TeamViewer que la llamada actual es tuya para que podamos hacernos cargo del canal de audio e iniciar la transmisión VoIP:
    1. Llama al método setupCallUUID.
    2. Informa al SDK de que tu llamada ha finalizado llamando al método clearCall UUID.

Activación de los modos de fondo

Asegúrate de tener activado al menos uno de estos modos de fondo en tu archivo Info.plist:

  • Audio,
  • AirPlay o
  • Modo de fondo de voz sobre IP.

🚨IMPORTANTE: Si no lo haces, la aplicación se suspenderá sólo unos segundos después de haberla puesto en segundo plano durante una sesión activa de TeamViewer.

Configuración de audio

El SDK para móviles trabaja con los valores de configuración por defecto de AVAudioSession.

  • Si quieres anular estos valores para soportar Bluetooth, Airplay mix, usar altavoces, etc., asegúrate de cambiar esto antes de que se establezca una sesión. En caso de que tu aplicación silencie otras apps, el momento recomendado para configurar la sesión de audio es justo antes de aceptar la conexión.
  • Si el audio de tu aplicación se mezcla con el de otras aplicaciones, puedes configurar las opciones de audio al iniciar la aplicación.

Desactivar VoIP

En caso de que desee utilizar otro medio para establecer la comunicación de voz, puedes desactivar por completo la función VoIP configurando las opciones en la instancia compartida del SDK antes de establecer una conexión.

Para más información, consulta la documentación de TVSDKOptions.

Documentación de clase

Todas las cabeceras públicas están documentadas. Para obtener información detallada sobre cada clase, consulte el contenido de QuickHelp generado por Xcode ('⌥ '+ clic en nombre de constante o variable).