2010-04-02 26 views
20

Tôi đang thực hiện một chút nghiên cứu sơ bộ về một dự án sắp tới và tôi có một câu hỏi nhanh rằng tôi hình dung tôi sẽ ném lên đây trong khi tôi tìm ở nơi khác, trong trường hợp bất kỳ ai có kinh nghiệm với điều này.Trình đọc mã QR của JavaScript - có thể thực hiện được không? Hoặc, Dịch vụ từ xa?

Câu hỏi rất đơn giản: bạn có thể đọc mã QR bằng JavaScript không? Có một dịch vụ từ xa mà tôi có thể vượt qua một đối tượng bitmap từ một máy ảnh và làm theo cách đó? Hiện tại có bất kỳ thư viện nào cho phép điều này không?

Dự án sẽ được triển khai cho các thiết bị di động khác nhau và chúng tôi muốn cố gắng sử dụng Appcelerator để làm cho nó hoạt động. Tôi biết Appcelerator không hiển thị API Camera trên các thiết bị chủ của nó, nhưng bất cứ điều gì chúng tôi làm với nó đều phải có khả năng phân tích mã QR. Đây có phải là thứ có thể làm được không?

Cảm ơn trước! myk

+1

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

+0

@StefanoCudini trang web đó đang sử dụng dịch vụ từ xa ZXing, chứ không phải js thuần túy. –

+0

Một chút trễ, nhưng nếu bạn đang tìm kiếm một giải pháp đáng tin cậy cho android và ios, thì bạn có thể kiểm tra câu trả lời này http://stackoverflow.com/questions/17652017/read-qrcode-from-a-web-page- with-camera/29665026 # 29665026 – maraca

Trả lời

1

Do giới hạn bộ nhớ cho JavaScript trên thiết bị di động, có thể mất quá nhiều thời gian để sử dụng thực tế, nếu có thể với JS hoàn toàn.

Tôi không biết chính xác cách Appcelerator API hoạt động với thư viện gốc bên ngoài, nhưng tốt nhất là chuyển dữ liệu hình ảnh sang mã gốc (Objective-C hoặc Java) và sau đó sử dụng thư viện cấp thấp hơn (như iphone-qrcode) để phân tích mã QR, sau đó chuyển kết quả trở lại ngữ cảnh thực thi JS.

Điều này có thêm lợi thế khi làm việc ngoại tuyến, một dịch vụ từ xa không thể thực hiện được.

+0

Hiểu biết của tôi là Appcelerator được sandboxed - không có quyền truy cập vào chức năng gốc cấp thấp hơn. Vì vậy, tôi nghĩ rằng một cuộc gọi dịch vụ từ xa là con đường để đi, nhưng kỳ lạ tôi đã không tìm thấy một. Có thể phải cuộn của riêng tôi. – Myk

+0

xem tài liệu, bạn sẽ có thể mở rộng appcelerator bằng chức năng gốc bổ sung: http://developer.appcelerator.com/doc/mobile/iphone/module_sdk – alunny

0

Nếu bạn muốn có bằng chứng về khái niệm, thì đây là - motion tracker được viết bằng Javascript thuần túy.

Tuy nhiên, hỗ trợ cho nó hiện không phổ biến rộng rãi. Chỉ FF và bộ xây dựng mới nhất của Webkit hỗ trợ nó.

Chỉ cần nhận thấy rằng bạn muốn điều này cho thiết bị di động. Sau đó, hoàn toàn đi với một dịch vụ từ xa. Nó sẽ thực sự đánh thuế ngay cả trên các thiết bị cao cấp nhất cho rằng họ thậm chí còn hỗ trợ nó, điều mà tôi rất nghi ngờ.

6

Tôi đặt cược là có thể, nhưng nó sẽ là một thách thức. Ai đó đã viết một số AS3 library for reading QR codes. Tôi bắt đầu bằng cách đọc lên trên image manipulation in Canvas.

Nếu bạn đi xuống tuyến đường API từ xa, Kaywa có API bạn có thể sử dụng.

+0

Tuyệt vời, điều đó chỉ cho tôi theo một vài hướng vững chắc. Tôi nghĩ tôi sẽ rời khỏi kế hoạch dịch vụ từ xa; chuyển AS3 sang JS có vẻ như nó có ý nghĩa nhất. Câu trả lời được chấp nhận trừ khi một cái gì đó tốt hơn đi kèm, trong trường hợp đó tôi sẽ không biết xấu hổ thu hồi sự chấp nhận của tôi. ;) – Myk

+0

Cảm ơn! Đảm bảo rằng điện thoại di động bạn đang nhắm mục tiêu hỗ trợ Canvas. Tôi nghĩ rằng iPhone và Android làm. – dave1010

2

Có javascript library rồi, tuy nhiên các nhận xét chủ yếu bằng tiếng Nhật và không có tài liệu.

2

Bạn có thể sử dụng API getUserMedia để nhận video từ webcam và bạn có thể đặt video đó vào phần tử canvas và sử dụng canvas để đọc pixel và giải mã mã QR.

Tôi không biết thư viện nào để giải mã mã QR nhưng ở đây là one library có thể làm mã vạch.