2010-04-02 14 views
20

Estoy haciendo un poco de investigación preliminar sobre un próximo proyecto y tengo una pregunta rápida que supongo que vomitaré aquí mientras busco en otro lado, en caso de que alguien tenga alguna experiencia con esto.JavaScript QR Code Reader - ¿se puede hacer? O, servicio remoto?

La pregunta es simple: ¿es posible leer un código QR usando JavaScript? ¿Hay un servicio remoto al que puedo pasar un objeto de mapa de bits desde una cámara y hacerlo de esa manera? ¿Hay actualmente alguna biblioteca que permita esto?

El proyecto se implementará en varios dispositivos móviles y nos gustaría tratar de usar Appcelerator para que funcione. Sé que Appcelerator expone la API de la cámara en sus dispositivos host, pero hagamos lo que hagamos con ella debe poder analizar los códigos QR. ¿Es esto algo que se puede hacer?

¡Gracias de antemano! myk

+1

http://www.patrick-wied.at/static/qrgen/ – StefanoCudini

+0

@StefanoCudini ese sitio está utilizando el servicio remoto de ZXing, no es puro js. –

+0

Un poco tarde, pero si está buscando una solución confiable solo para Android y iOS, entonces puede verificar esta respuesta http://stackoverflow.com/questions/17652017/read-qrcode-from-a-web-page- with-camera/29665026 # 29665026 – maraca

Respuesta

1

Debido a los límites de memoria para JavaScript en dispositivos móviles, es probable que tome demasiado tiempo para el uso práctico, si es posible con JS puramente.

No sé exactamente cómo funciona la API de Appcelerator con bibliotecas nativas externas, pero lo mejor es pasar los datos de imagen al código nativo (Objective-C o Java) y luego usar una biblioteca de nivel inferior (como iphone-qrcode) para analizar el código QR, luego pasar el resultado al contexto de ejecución de JS.

Esto tiene la ventaja adicional de trabajar fuera de línea, lo que un servicio remoto no podría hacer.

+0

Según tengo entendido, Appcelerator es un espacio aislado: no tiene acceso a la funcionalidad nativa de nivel inferior. Así que estoy pensando que una llamada de servicio remoto es el camino a seguir, pero extrañamente no he encontrado uno. Podría tener que hacer mi propio. – Myk

+0

mirando los documentos, debería poder extender el acelerador con funcionalidad nativa adicional: http://developer.appcelerator.com/doc/mobile/iphone/module_sdk – alunny

0

Si quiere una prueba de concepto, entonces aquí está - un motion tracker escrito en Javascript puro.

Sin embargo, el soporte no está muy extendido en este momento. Solo FF y las últimas compilaciones de Webkit lo admiten afaik.

Acaba de darse cuenta de que quería esto para un dispositivo móvil. Entonces, absolutamente vaya con un servicio remoto. Será realmente agotador incluso en los dispositivos más avanzados, suponiendo que incluso lo admitan, lo que dudo mucho.

6

Apuesto a que es posible, pero sería un desafío. Alguien ha escrito un AS3 library for reading QR codes. Comenzaría leyendo en image manipulation in Canvas.

Si baja por la ruta de la API remota, Kaywa tiene una API que puede ser capaz de utilizar.

+0

Genial, eso me señala en algunas direcciones sólidas. Creo que me voy a alejar del plan de servicio remoto; portar AS3 a JS suena como si tuviera más sentido. Se acepta la respuesta a menos que surja algo mejor, en cuyo caso revocaré descaradamente mi aceptación. ;) – Myk

+0

Gracias! Asegúrate de que los móviles a los que apuntas sean compatibles con Canvas. Creo que iPhone y Android lo hacen. – dave1010

2

Ya existe un javascript library, sin embargo, los comentarios son en su mayoría en japonés y no hay documentación.

2

Puede usar la API getUserMedia para obtener video de la cámara web y puede colocarlo en un elemento canvas y usar el lienzo para leer los píxeles y decodificar un código QR.

No conozco una biblioteca para decodificar códigos QR pero aquí está one library que puede hacer códigos de barras.

Cuestiones relacionadas