|
Some checks failed
APK-BUILD/pipeline/head There was a failure building this commit
Use the Jk logo from smart.joykoo.mx as the launcher icon (legacy PNGs and adaptive icon foreground at all densities). Add SSL/HTTP error handling so failures show the error overlay instead of a silent white screen. Add JS console logging to logcat and WebView debugging for debug builds. Relax mixed content mode to compatibility. Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com> |
||
|---|---|---|
| app | ||
| gradle/wrapper | ||
| .gitignore | ||
| build.gradle.kts | ||
| CLAUDE.md | ||
| gradle.properties | ||
| gradlew | ||
| Jenkinsfile | ||
| README.md | ||
| settings.gradle.kts | ||
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-toolsplatforms;android-34build-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
- El usuario toca un campo de texto en la página web
- El campo recibe el foco — el teclado virtual no aparece
- El usuario escanea un código de barras o QR
- El texto escaneado aparece en el campo
- 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.