Go to file
2026-10-07 18:40:44 -04:00
app Initial commit. Basic app. 2026-09-28 15:41:55 -04:00
gradle/wrapper Initial commit. Basic app. 2026-09-28 15:41:55 -04:00
.gitignore Initial commit. Basic app. 2026-09-28 15:41:55 -04:00
build.gradle.kts Initial commit. Basic app. 2026-09-28 15:41:55 -04:00
CLAUDE.md Initial commit. Basic app. 2026-09-28 15:41:55 -04:00
gradle.properties Initial commit. Basic app. 2026-09-28 15:41:55 -04:00
gradlew Initial commit. Basic app. 2026-09-28 15:41:55 -04:00
Jenkinsfile Modified Jenkinsfile. 2026-10-07 18:40:44 -04:00
README.md Initial commit. Basic app. 2026-09-28 15:41:55 -04:00
settings.gradle.kts Initial commit. Basic app. 2026-09-28 15:41:55 -04:00

Joykoo Scanner

Aplicación nativa de Android que funciona como navegador dedicado de pantalla completa para el sistema web de Joykoo (smart.joykoo.mx), diseñada para escáneres industriales de códigos de barras y QR.

Características

  • WebView en pantalla completa — Carga el sitio web de la empresa sin barra de direcciones ni controles del navegador
  • Supresión del teclado virtual — El teclado en pantalla de Android nunca aparece, mientras que la entrada del escáner de códigos de barras (modo HID/teclado) funciona normalmente
  • Modo kiosco — Pantalla siempre encendida, modo inmersivo, navegación restringida al dominio de la empresa
  • Persistencia de sesión — Cookies y almacenamiento local persisten entre reinicios de la aplicación
  • Manejo de errores de red — Pantalla de reintento cuando no hay conexión Wi-Fi
  • Salida protegida — Se requieren 3 pulsaciones rápidas del botón Atrás para salir; gesto oculto de administrador (7 toques en esquina superior izquierda) con diálogo de confirmación

Requisitos

  • Android 7.0+ (API 24)
  • Dispositivo con escáner de códigos de barras integrado en modo HID/teclado
  • Conexión Wi-Fi al servidor de la empresa

Compilación

Prerrequisitos

  • JDK 17
  • Android SDK con:
    • platform-tools
    • platforms;android-34
    • build-tools;34.0.0

Usando Android Studio

Abrir el proyecto y compilar normalmente.

Línea de comandos

export JAVA_HOME=/ruta/a/jdk-17
export ANDROID_HOME=/ruta/a/android-sdk

./gradlew assembleDebug    # APK de depuración
./gradlew assembleRelease  # APK de producción (requiere configurar firma)

El APK resultante se encuentra en app/build/outputs/apk/.

Configuración

Todos los valores configurables están en un solo archivo:

app/src/main/java/mx/joykoo/scanner/AppConfig.kt

Parámetro Descripción Valor por defecto
HOME_URL URL que se carga al iniciar https://smart.joykoo.mx/
ALLOWED_HOSTS Dominios permitidos dentro del WebView smart.joykoo.mx, joykoo.mx
BACK_PRESS_EXIT_COUNT Pulsaciones rápidas de Atrás para salir 3
ADMIN_TAP_COUNT Toques en esquina superior izquierda para menú de administrador 7

Uso del escáner

  1. El usuario toca un campo de texto en la página web
  2. El campo recibe el foco — el teclado virtual no aparece
  3. El usuario escanea un código de barras o QR
  4. El texto escaneado aparece en el campo
  5. Si el escáner envía Enter al final, la página lo procesa normalmente

Estructura del proyecto

app/src/main/java/mx/joykoo/scanner/
├── AppConfig.kt              — Configuración centralizada
├── MainActivity.kt           — Actividad principal (kiosco, WebView, navegación)
├── NoSoftKeyboardWebView.kt  — WebView que suprime el teclado virtual
└── ScannerIntegration.kt     — Interfaz para futura integración con SDK de escáner

Integración futura con SDK de escáner

La aplicación funciona inmediatamente con escáneres en modo HID/teclado. Para escáneres que requieren integración con SDK propietario (broadcast intents), implementar la interfaz ScannerIntegration y registrar el BroadcastReceiver correspondiente.

Seguridad

  • Solo conexiones HTTPS
  • No se omiten errores de certificado TLS
  • No se exponen interfaces JavaScript
  • Acceso a archivos y contenido deshabilitado
  • Navegación restringida a dominios autorizados

Licencia

Uso interno — Joykoo.