اليوم، قدم لي مشرفي طلبًا، قائلاً إنني بحاجة إلى استخدام التطوير المختلط واستخدام H5 للاتصال بالكاميرا المحلية لمسح رمز QR ضوئيًا. لقد قمت بمسح رمز QR الأصلي لنظام Android من قبل، وذلك بشكل أساسي عن طريق الاتصال بالمكون الإضافي zxing. لقد حصلت أيضًا على وميض، لكنني لم أصادف قط H5 نقيًا، لذلك لم أكن أعرف ما يجب فعله، لذلك عدت إلى المنزل ليلاً وبدأت البحث عن حلول عبر الإنترنت، وفيما يلي فهمي ورمز مسح QR لـ H5 رموز واستدعاء الكاميرات المحلية.
موقع علمي مشهور:
كيف يقوم H5 بإنشاء كائنات مكونات Android
يستدعي H5 واجهة برمجة تطبيقات الكاميرا المحلية لنظام Android
مولد صورة رمز الاستجابة السريعة عبر الإنترنت
مسح رمز الاستجابة السريعة: (باستخدام إطار عمل mui، ما يلي هو رمز html)
<!doctype html> <html> <head> <meta charset=UTF-8> <title></title> <meta name=viewport content=width=device-width,initial-scale=1,minimum-scale=1 ,maximum-scale=1,user-scalable=no /> <link href=css/mui.min.css rel=stylesheet /> <script src=js/mui.min.js></script> <style type=text/css> #bcid{ width: 100% height: 100%; { الارتفاع: 100%; العرض: 100%; .fbt{ اللون: #0E76E1; #ffffff؛ mui-action-back mui-icon mui-icon-left-nav mui-pull-left></a> <h1 class=mui-title style=color: #0E76E1;>مسح رمز الاستجابة السريعة H5webapp</h1> <span class=mui-icon mui-icon-spinner-cycle mui-spin mui-pull-right id=turnTheLight></span> </header> <div id = bcid> <!--div الذي يحمل عنصر التحكم في المسح--> </div> <div class=mui-bar mui-bar-footer style=padding: 0px;> <div class=fbt onclick=scanPicture();>حدد رمز QR من الألبوم</div> <div class=fbt mui-action-back>إلغاء</div> </div> <script type=text / javascript> var height = window.innerHeight + 'px';// احصل على الارتفاع الفعلي للصفحة var width = window.innerWidth + 'px'; document.getElementById(bcid).style.height= height; document.getElementById(bcid).style.width= width; scan = null;// مسح الكائن mui.plusReady(function () { // تهيئة فحص mui من خلال mui. init(); startRecognize(); }); function startRecognize(){ // تشغيل المسح Try{ var filter; #29E52C,scanbarColor: #29E52C,background: } // إنشاء التحكم في المسح scan = new plus.barcode.Barcode('bcid',filter,styles); scan.onmarked = scan.onerror = onerror; scan.start(); // تشغيل وإيقاف معالجة الفلاش var flag = false; document.getElementById(turnTheLight).addEventListener('tap',function(){ if(flag == false){ scan.setFlash(true); flag = true; }else{ scan.setFlash(false); flag = false; } }); }catch(e){ تنبيه(حدث خطأ:/n+e) } }; // خطأ منبثق تنبيه (e)؛ }; function onmarked( type, result ) { // هذه هي وظيفة رد الاتصال لمسح رمز الاستجابة السريعة، النوع هو نوع رد الاتصال لمسح رمز الاستجابة السريعة var text = '' Switch (type ){ //QR وEAN13 وEAN8 كلها تنسيقات ترميز لرموز QR، والنتيجة هي النتيجة التي تم إرجاعها. case plus.barcode.QR: text = 'QR: '; النص = 'EAN13: ';break; case plus.barcode.EAN8: text = 'EAN8: '; التعرف مباشرة على صور رمز الاستجابة السريعة plus.gallery.pick(function(path){ plus.barcode.scan(path,onmarked,function(error){ plus.nativeUI.alert(غير قادر على التعرف على هذه الصورة); }); },function(err){ plus.nativeUI.alert(Failed: +err.message });فيما يلي بنية الحزمة: أداة التطوير هي hbuilder
وظيفة mui.plusReady مخصصة بشكل أساسي للتهيئة
startRecognize () هو تمكين وظيفة مسح رموز QR
onerror هي رسالة خطأ
العلامة المميزة هي النقطة الأساسية، وهي وظيفة رد الاتصال بعد مسح رمز الاستجابة السريعة ضوئيًا، والنوع هو نوع التعرف على رمز الاستجابة السريعة، والنتيجة هي محتوى رد اتصال رمز الاستجابة السريعة.يمكن لـ scanPicture() التعرف مباشرة على صور رمز الاستجابة السريعة المحلية وتحليلها
H5 يستدعي الكاميرا المحلية
<!DOCTYPE html><html><head> <meta charset=utf-8> <meta name=viewport content=width=device-width,initial-scale=1,minimum-scale=1,maximum-scale=1, user-scalable=no /> <title></title> <script src=js/mui.min.js></script> <link href=css/mui.min.css rel=stylesheet/> <script type=text/javascript charset=utf-8> document.addEventListener( plusready, function(){ mui.init(); }); وظيفة getCamera() { var cam = plus.camera.getCamera(); // مصفوفة السلسلة، دقة الكاميرا التي تدعمها الكاميرا varsolutions = cam.supportedImageResolutions[0]; // مصفوفة السلسلة، تنسيقات ملفات الصور التي تدعمها الكاميرا var Formats = cam.supportedImageFormats[0]; // اتصل بطريقة الصورة //capturedFile، بعد اكتمال الصورة، كاميرا عنوان تخزين الصور .captureImage( function(capturedfile){ // نجح التصوير الفوتوغرافي تنبيه (capturedfile)؛ // اطبعه}، function(){ // فشل التصوير}، {// تنسيق معلمات التصوير: التنسيقات، الفهرس: 1//1 يمثل الكاميرا الرئيسية، 2 يمثل الكاميرا المساعدة}); varsolutions = cam.supportedImageResolutions[0]; //مصفوفة سلسلة، تنسيق ملف الصورة الذي تدعمه الكاميرا var Formats = cam.supportedImageFormats[ 0] // اتصل بطريقة التصوير //capturedFile بعد اكتمال التصوير، عنوان تخزين الصور cam.captureImage(function(capturedFile){. // تم التقاط الصورة بنجاح تنبيه (capturedFile)؛ // طباعتها // اتصل بطريقة النظام للحصول على الصورة وفقًا لعنوان الصورة plus.io.resolvLocalFileSystemURL(capturedFile, // وظيفة رد الاتصال الناجحة // وظيفة المعلومات المتعلقة بملف الإدخال( الإدخال){ var img = document.createElement(img.src =entry.toLocalURL(); document.documentElement.appendChild(img); },function(){ // وظيفة رد الاتصال الفاشلة} }); } </script></head><body> <button onclick=getCamera()>التصوير</button></body></html >mui.init(); هو تهيئة إطار عمل mui
تقوم طريقة getCamera () أولاً بإنشاء كائن كاميرا، ثم تلتقط صورة، وتطبع مسار الصورة الذي تم إنشاؤه بعد التقاط الصورة.
تلخيصما سبق هو تطوير HTML5 المختلط لمسح رمز الاستجابة السريعة واستدعاء الكاميرا المحلية الذي قدمه المحرر، وآمل أن يكون مفيدًا لك. إذا كانت لديك أي أسئلة، فيرجى ترك رسالة لي وسيقوم المحرر بالرد عليك في الوقت المناسب. أود أيضًا أن أشكر الجميع على دعمكم لموقع VeVb للفنون القتالية!