Con el TeamViewer Software Development Kit (SDK) puedes utilizar todas las funcionalidades de Assist AR y ofrecerles a tus clientes la mejor experiencia de asistencia remota con AR, integrando dichas capacidades en sus propias aplicaciones móviles.
El SDK te permite establecer conexiones seguras y conformes con el RGPD (GDPR) con los dispositivos de tus clientes.
Este artículo se aplica a tod@s l@s usuari@s de TeamViewer Assist AR.
Requisitos previos
- iOS 15.4 y superior
- Una cuenta existente en TeamViewer
Si no tienes una cuenta en TeamViewer, sigue los pasos indicados aquí.
Generar una clave API
- Abre e inicia sesión con tu cuenta de TeamViewer en la aplicación TeamViewer Remote o en https://web.teamviewer.com/
- Haz clic en Ajustes de administrador (Admin settings).
- En Autenticación (Authentication), haz clic en Aplicaciones y tokens (Apps & Tokens).
- Haz clic en Ajustes del perfil (Profile settings).
5. Haz clic en el menú desplegable Crear aplicación o token (Create app or token) y haz clic en Crear SDK para móvil (Create mobile SDK)
6. Introduce un Nombre y una Descripción (opcional)
7. En Sistema SDK para móvil (Mobile SDK system), selecciona iOS
8. Haz clic en Guardar (Save).
Tu token SDK móvil se muestra al abrir Aplicaciones y tokens (Apps & tokens):
9. Haz clic en los tres puntos, selecciona Copiar token (Copy token) y pégalo en un lugar seguro.
IMPORTANTE: No compartas este token con nadie
Instalar el SDK de TeamViewer Mobile
Puedes instalar el SDK de TeamViewer como Swift Package Manager (SPM) o manualmente, siguiendo los pasos a continuación:
- Instalar el SDK de TeamViewer como paquete de Swift Package Manager
- Instalar el SDK de TeamViewer manualmente
Puedes agregar el SDK de TeamViewer como SPM a cualquier proyecto siguiendo estos pasos:
- Abre el proyecto y haz clic en Package Dependencies
- Haz clic en el icono de más (+) en la esquina inferior izquierda.
3. Introduce el enlace de GitHub del paquete SPM en la barra de búsqueda. El paquete SPM TeamViewer-AR-iOS aparecerá en los resultados.:
4. Haz clic en Añadir paquete (Add Package).
5. Selecciona el destino al que se agregará este paquete como dependencia.
6. Confirma haciendo clic en Añadir paquete (Add Package).
7. El SDK de TeamViewer se añadirá como dependencia al proyecto.
8. El paquete también se añadirá al destino (seleccionado en el paso 5):
9. Si el paquete no se agregó al destino en el paso 5, puedes añadirlo haciendo clic en el icono de más (+), como se mostró anteriormente, y seleccionando Añadir Dependencia de Paquete (Add package dependency) para incluir el paquete SPM.
Esta vez, aparecerá en la lista Recientes (Recents) (mostrada en el paso 3).:
El SDK está disponible para clientes con una licencia de Assist AR Professional y lo distribuye el equipo de soporte de TeamViewer.
1. Descarga el archivo .zip, descomprímelo y copia todas las carpetas xcframework incluidas en la carpeta de tu proyecto.
Nota: El SDK se distribuye como un XCFramework universal que contiene ambas arquitecturas: iOS arm64 y Simulator x86. Actualmente no es compatible con las arquitecturas Apple Silicon ni con Mac Catalyst. Además, se puede distribuir mediante Swift Package Manager (SPM).
2. Vincula los frameworks TVLocalizations y TeamViewerSDK a tu proyecto.
3. Asegúrate de que la opción Insertar y firmar (Embed & Sign) esté seleccionada.
4. Es posible que también necesites vincular con ARKit y CallKit, según tu despliegue.
5. Solo si planeas ser compatible con CallKit: vincula con 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.
Añade las siguientes claves al archivo Info.Plist:
- NSMicrophoneUsageDescription
- NSCameraUsageDescription
Si no añades esas claves, iOS cerrará la aplicación en el momento en que el SDK intente acceder al micrófono o a la cámara.
Uso del SDK de 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 (Prerequisites).
2. Establece un delegado que cumpla con el protocolo TeamViewerSDKDelegate.
De este modo, podrás reaccionar a los acontecimientos que se produzcan durante la vida útil de tu conexión de TeamViewer.
3. Conectate a un código de sesión
El SDK compartido proporciona un método para establecer una conexión mediante 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 client de TeamViewer o a través de la API REST de TeamViewer.
El método connectToSessionCode devuelve una sesión de TeamViewer.
IMPORTANTE:
- Eres responsable de mantener viva esta variable, y también de liberar esta variable. De lo contrario, la interfaz de usuario de la sesión podría permanecer activa incluso después de que la sesión remota haya finalizado.
- 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 handleSessionCodeOnline.
En este punto, no debes permitir que el usuario se conecte a un código de sesión diferente. Solo se permite al usuario abandonar la conexión actual.
Por su parte, el agente de soporte verá el código de sesión como en línea, lo que permitirá al client 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 de este intento mediante el método delegado handleConnectionRequestWithAuthenticationData.
En el parámetro de datos de autenticación se encuentran el nombre del agente de soporte, el tipo de conexión entrante (ScreenShare o Assist AR) y una función de callback que permite o rechaza la conexión entrante.
Si se acepta la conexión entrante, se establece la conexión de 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 tu 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 de 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 AR. Hay comunicación VoIP bidireccional entre el usuario y el agente de soporte.
- El método delegado handleConnectionRequestAbort debe implementarse para ser notificado cuando el usuario remoto cancela la solicitud de conexión. Eres 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
- handleSessionConnected: Este método se ejecuta cuando el agente de soporte ha iniciado la sesión y también cuando el usuario ha iniciado localmente la sesión.
- handleSupporterDisconnected: Este método se ejecuta cuando el agente de soporte ha finalizado la sesión y también 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 no es válida.
- handleError: Este método se ejecuta si el código de sesión o el token de API utilizado para establecer una conexión no es válido.
Sugerencia: Debes limpiar los recursos utilizados en la sesión actual, ya que esta se considera inválida.
Reacción ante eventos opcionales de la sesión
- handleSessionError: Se ejecuta cuando ocurre un error durante la sesión. Por ejemplo, se ha solicitado una función, pero no se ha cumplido la compatibilidad entre el client y el servidor.
Sugerencia: Este error es sólo informativo. Puedes escribirlo en un archivo de registro.
Nota sobre la compatibilidad con CallKit
Si tu aplicación es compatible con CallKit:
- Proporciona al SDK de TeamViewer la información del identificador único de tu llamada.
- TeamViewer pregunta al sistema si hay una llamada en curso y, en ese caso, no intenta establecer una conexión VoIP.
- Dile a TeamViewer que la llamada actual es tuya para que podamos hacernos cargo del canal de audio e iniciar la transmisión VoIP:
- Llama al método setupCallUUID.
- Informa al SDK de que tu llamada ha finalizado llamando al método clearCallUUID.
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 (Voice over IP background mode).
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 utiliza 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. Si tu aplicación silencia 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 iniciarla.
Desactivar VoIP
En caso de que desees 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, consulta el contenido de QuickHelp generado por Xcode ('⌥ '+ haz clic en el nombre de la constante o variable).