Anda kemungkinan besar berada dalam salah satu dari dua situasi. Entah Anda mewarisi aplikasi Cordova yang masih penting bagi bisnis, atau Anda mempertahankan aplikasi hybrid yang stabil sementara tim perlahan beralih ke tooling yang lebih baru. Lalu datang permintaan produk: pindai label inventaris, tiket, paket, atau tag rak menggunakan kamera ponsel.
Di situlah barcode scanner Cordova pekerjaan menjadi menarik. Demo dasar itu mudah. Integrasi produksi tidak. Bagian yang sulit adalah memilih plugin yang sesuai dengan format barcode Anda, mengonfigurasi izin native dengan bersih, dan menangani keanehan platform yang hanya muncul di perangkat asli. Jika aplikasi Anda juga menyentuh operasi lapangan atau alur inventaris, fitur pemindaian biasanya terhubung ke kekhawatiran operasional yang lebih luas seperti mengelola komponen IT kritis, di mana aplikasi mobile menjadi bagian dari alur aset dan layanan yang lebih besar.
Cordova masih menjadi stack nyata dalam pekerjaan pemeliharaan enterprise. Pada pertengahan 2010-an, pemindaian barcode di Cordova sudah melampaui contoh mainan menjadi aplikasi enterprise hybrid yang dibangun untuk Android dan terhubung ke layanan backend, termasuk alur terdokumentasi menggunakan cordova create, cordova platform add android, dan sebuah barcodeScanner-debug.apk dalam contoh build aplikasi praktis dari Panduan pemindaian Cordova dari SitePoint. Jika tim Anda juga mempertimbangkan pilihan arsitektur jangka panjang, perbandingan ini aplikasi native vs aplikasi web membantu menjelaskan mengapa aplikasi hybrid masih muncul di pipeline pengiriman mobile yang serius.
Table of Contents
- Mengapa Menambahkan Barcode Scanner ke Aplikasi Cordova Anda
- Memilih Plugin Barcode Scanner Cordova Anda
- Instalasi dan Konfigurasi Platform
- Implementasi Scanner di Aplikasi Code
- Testing dan Troubleshooting Error Umum
- Tips Performa dan Migrasi ke Capacitor
Mengapa Menambahkan Barcode Scanner ke Aplikasi Cordova Anda
Scanner mengubah apa yang bisa dilakukan aplikasi Cordova di lapangan. Alih-alih meminta pengguna mengetik nomor seri, ID pesanan, atau kode produk, Anda membiarkan kamera menjadi perangkat input. Ini memangkas friksi, tetapi yang lebih penting, mengurangi kemungkinan pengguna memasukkan nilai yang salah.
Dalam praktiknya, pemindaian barcode muncul di tempat aplikasi mobile bertemu dengan operasi nyata. Penerimaan gudang, pencarian ritel, validasi suku cadang layanan lapangan, check-in pengunjung, dan pelacakan aset internal semuanya diuntungkan. Scanner juga mengubah ekspektasi pengguna. Begitu kamera tersedia, pengguna berhenti mentoleransi input code manual kecuali ada fallback yang jelas.
Cordova masih masuk akal dalam mode pemeliharaan
Banyak tim membicarakan Cordova seolah-olah sudah hilang. Tidak juga. Ia menua menjadi portofolio enterprise yang berat pemeliharaan, di mana mengganti aplikasi yang berfungsi lebih sulit daripada memperluasnya. Jika aplikasi sudah menangani autentikasi, sinkronisasi, formulir, dan penyimpanan offline, menambahkan scanner sering kali berisiko lebih rendah daripada membangun ulang seluruh produk.
Aturan praktis: Jangan perlakukan permintaan pemindaian sebagai pemicu penulisan ulang kecuali bagian lain dari aplikasi sudah gagal secara operasional bagi tim Anda.
Cordova juga mendapat tempatnya karena plugin mengekspos kemampuan native perangkat dengan cara yang bisa digunakan oleh code web. Itulah mengapa pemindaian barcode menjadi sangat umum di aplikasi mobile hybrid. Ini sesuai dengan pola yang menjadi dasar Cordova: letakkan kemampuan native di balik API JavaScript dan biarkan alur aplikasi tetap berbasis web.
Nilainya ada di workflow, bukan demo
Tombol scanner yang mengembalikan teks adalah bagian yang mudah. Pekerjaan utamanya adalah semua hal di sekitarnya:
- Memilih symbology yang didukung: Aplikasi Anda mungkin hanya butuh QR, atau mungkin juga butuh kode ritel dan logistik.
- Menangani izin dengan bersih: Jika akses kamera gagal sekali, pengguna sering mengasumsikan fiturnya rusak.
- Merancang aksi pasca-scan: Lookup, validasi, navigasi, dan penanganan duplikat lebih penting daripada UI kamera.
- Merencanakan modernisasi: Jika tim Anda bergerak menuju Capacitor, Anda butuh pendekatan yang tidak menjebak fitur dalam asumsi khusus Cordova.
Poin terakhir itu penting. Tim sering berhasil dengan integrasi Cordova awal, lalu mengalami masalah saat migrasi karena model rendering native berubah di bawah plugin. Scanner tetap berfungsi. Previewnya saja tidak muncul di tempat yang Anda harapkan.
Memilih Plugin Barcode Scanner Cordova Anda
Sebelum menulis aplikasi code apa pun, tentukan apa yang ingin Anda optimalkan. Beberapa tim membutuhkan dukungan barcode yang luas. Tim lain hanya perlu overlay kamera untuk alur QR. Memilih plugin yang salah di awal akan menyebabkan pekerjaan ulang nanti, terutama ketika produk meminta satu format barcode lagi setelah peluncuran.
Plugin yang paling dikenali oleh pengembang adalah cordova-plugin-barcodescanner. Paket npm-nya mendokumentasikan scan(success, fail) API dan dukungan untuk simbolisme umum termasuk QR_CODE, DATA_MATRIX, UPC_A, EAN_13, CODE_128, PDF_417, dan AZTEC, itulah mengapa plugin ini cocok untuk skenario ritel dan logistik, bukan hanya kasus penggunaan berbasis QR, seperti yang ditunjukkan dalam dokumentasi paket plugin di npm.
Untuk tim yang mengevaluasi strategi plugin secara lebih luas, ringkasan ini tentang apa yang perlu diketahui tentang plugin Capacitor berguna karena menyoroti perbedaan antara asumsi plugin gaya Cordova yang lebih lama dan model native bridge yang lebih baru.

Yang penting sebelum Anda menginstal apa pun
Jangan mulai hanya dengan popularitas. Mulai dari tugas pemindaian Anda.
Jika aplikasi harus membaca berbagai keluarga barcode di berbagai konteks operasional, dukungan simbol yang luas lebih penting daripada API yang minimal. Jika aplikasi hanya perlu check-in QR, Anda bisa menerima alat yang lebih sempit jika memberikan pengalaman kamera yang lebih sederhana. Yang sering terlewatkan oleh developer junior adalah bahwa pekerjaan scanner kurang tentang “bisa memindai” dan lebih tentang “bisa memindai label persis yang digunakan oleh operasional tanpa workaround yang canggung.”
Daftar periksa pemilihan yang baik terlihat seperti ini:
- Cakupan barcode: Konfirmasi format persis yang digunakan di produksi.
- Ekspektasi platform: Periksa apa yang masih didukung tim saat ini, bukan apa yang didukung plugin secara historis.
- Model UI: Beberapa plugin membuka alur scanner native. Yang lain mengharapkan pendekatan preview tertanam.
- Toleransi migrasi: Tanyakan apakah plugin ini akan menjadi menyakitkan jika aplikasi berpindah ke Capacitor nanti.
Plugin yang berfungsi di demo tetapi mengganggu layout, lifecycle, atau jalur migrasi aplikasi Anda biasanya bukan plugin yang tepat.
Tabel perbandingan plugin
| Fitur | phonegap-plugin-barcodescanner | cordova-plugin-qrscanner |
|---|---|---|
| Penggunaan utama | Pemindaian barcode luas di berbagai format | Alur pemindaian yang berfokus pada QR |
| Gaya API | Pola callback yang familiar di banyak proyek Cordova legacy | Sering dipilih untuk kasus penggunaan dengan pratinjau kamera langsung |
| Cakupan format barcode | Lebih cocok jika produk membutuhkan lebih dari QR | Lebih cocok jika QR adalah satu-satunya persyaratan utama |
| Risiko migrasi | Bisa berjalan, tetapi asumsi lama mungkin muncul selama migrasi bridge modern | Pendekatan berbasis preview bisa mengungkap masalah rendering lebih cepat |
| Pilihan terbaik | Retail, logistik, aset, dan alur kerja barcode campuran | Check-in, URL, autentikasi, dan alur khusus QR |
Tabel itu mencerminkan kecocokan praktis, bukan skor. Jika Anda membutuhkan simbolologi retail dan logistik, kategori plugin yang lebih luas biasanya pilihan yang lebih aman. Jika Anda hanya memindai QR dan menginginkan pengalaman preview yang lebih terkontrol, jalur yang berorientasi QR bisa lebih ringkas.
Kesalahan yang paling sering saya lihat adalah memilih alat yang berfokus pada QR karena rilis pertama hanya membutuhkan QR, lalu memaksakannya untuk UPC atau Code 128 kemudian. Jika ada kemungkinan pengguna bisnis Anda akan memindai label dari printer, rak, bin, atau dokumen pengiriman, pilih untuk masa depan itu sekarang.
Instalasi dan Konfigurasi Platform
Integrasi biasanya rusak sebelum pemindaian pertama, bukan setelahnya. Kebanyakan kegagalan berasal dari pergeseran setup antara ekspektasi JavaScript dan konfigurasi platform native. Perlakukan bagian ini seperti checklist, bukan instalasi cepat.
Alur implementasi yang solid dimulai dengan menambahkan plugin atau SDK, membuat konteks capture, membatasi symbology ke kode yang Anda gunakan di produksi, mengonfigurasi UI, dan baru kemudian mendaftarkan scan listener. Urutan ini dijelaskan dalam panduan Cordova Scandit untuk SparkScan, dan sesuai dengan cara integrasi scanner profesional tetap mudah dipelihara di aplikasi hybrid, seperti yang diuraikan dalam panduan developer Scandit untuk pemindaian barcode Cordova. Jika aplikasi Anda masih sangat hybrid secara arsitektur, panduan ini tentang pengembangan aplikasi hybrid Cordova adalah pendamping yang berguna.

Mulai dengan alur integrasi
Fitur scanner akan lebih baik jika Anda memutuskan hal-hal ini terlebih dahulu:
- Jenis barcode apa yang harus diterima aplikasi.
- Apakah pemindaian adalah aksi layar penuh atau bagian dari workflow tertanam.
- Apa yang harus dilakukan aplikasi setelah pembacaan berhasil.
- Fallback apa yang tersedia ketika kamera tidak dapat digunakan.
Hal ini mengaitkan instalasi plugin dengan alur kerja nyata, bukan sekadar kemampuan perangkat generik.
Langkah instalasi Cordova
Untuk setup Cordova tradisional menggunakan plugin barcode scanner yang umum, titik awalnya adalah perintah instalasi standar yang didokumentasikan oleh package:
cordova plugin add cordova-plugin-barcodescanner
Urutan setup proyek yang tipis biasanya seperti ini:
cordova create barcodeScannerApp
cd barcodeScannerApp
cordova platform add android
cordova platform add ios
cordova plugin add cordova-plugin-barcodescanner
cordova build android
cordova build ios
Urutan ini sederhana, tapi jangan berhenti di situ. Build segera setelah instalasi plugin agar Anda bisa mendeteksi masalah dependensi native sebelum mengintegrasikan UI code. Jika build gagal, selesaikan itu terlebih dahulu.
Konfigurasi Native yang biasanya error duluan
Di iOS, akses kamera harus dideklarasikan dengan benar di pengaturan proyek native. Jika deskripsi penggunaan izin hilang atau samar, scanner tidak akan berfungsi sebagai fitur yang layak bagi pengguna. Tambahkan deskripsi privasi kamera yang jelas di Info.plist yang menjelaskan mengapa aplikasi membutuhkan kamera.
Di Android, periksa entri manifest dan izin terkait plugin setelah instalasi. Plugin mungkin menambahkan apa yang dibutuhkan, tetapi proyek lama sering kali mengandung perubahan konfigurasi yang menumpuk, pengaturan Gradle kustom, atau tumpang tindih plugin yang menyebabkan peringatan build atau kebingungan saat runtime. Jangan asumsikan manifest bersih hanya karena plugin terinstal dengan sukses.
Gunakan checklist cepat ini:
- Periksa versi platform: Proyek Cordova lama sering membawa paket platform yang sudah usang.
- Tinjau prompt izin: The wording and timing matter to user trust.
- Uji di perangkat fisik sejak awal: Emulator tidak bisa memberi gambaran lengkap tentang perilaku kamera.
- Jaga cakupan scanner tetap sempit: Aktifkan hanya tipe code yang diterima workflow Anda.
Jika scanner Anda hanya butuh satu atau dua format, konfigurasi untuk itu dulu. Scanning yang luas terdengar fleksibel, tapi sering memperlambat debugging karena setiap label yang tidak terbaca jadi ambigu.
Bagi developer junior, pelajaran kuncinya adalah: instalasi bukan sekadar perintah terminal. Ini soal keselarasan proyek native. Jika Android dan iOS tidak dikonfigurasi dengan benar, lapisan JavaScript tidak akan menyelamatkan Anda.
Implementasi Scanner di Aplikasi Code
Setelah plugin terinstal dan app berhasil di-build, buat implementasi pertama tetap sederhana. Letakkan aksi scan di balik tombol, log hasil lengkapnya, dan buktikan alur callback berfungsi sebelum merancang UI yang rapi di sekitarnya.
Pola scanner Cordova yang umum menggunakan scan(success, fail) metode plugin tersebut. Gaya callback itu memang lama, tapi andal di codebase legacy dan mudah di-wrap nanti kalau app Anda sudah beralih ke promise atau abstraksi TypeScript. Kalau Anda ingin model mental yang lebih jelas soal bagaimana web code memanggil native code di proyek seperti ini, penjelasan tentang bagaimana Capacitor menjembatani web dan native code bisa membantu, meskipun Anda masih coding di Cordova sekarang.

Contoh JavaScript murni
Berikut implementasi minimal untuk aplikasi Cordova lama:
<button id="scan-button">Scan barcode</button>
<div id="scan-result"></div>
document.addEventListener('deviceready', function () {
var button = document.getElementById('scan-button');
var resultEl = document.getElementById('scan-result');
button.addEventListener('click', function () {
cordova.plugins.barcodeScanner.scan(
function (result) {
if (result.cancelled) {
resultEl.textContent = 'Scan cancelled';
return;
}
resultEl.textContent =
'Text: ' + result.text +
' | Format: ' + result.format;
},
function (error) {
resultEl.textContent = 'Scan failed: ' + error;
}
);
});
});
Ini melakukan tiga hal berguna. Menunggu deviceready, mengikat pemindaian ke tindakan pengguna yang disengaja, dan menangani keberhasilan maupun kegagalan secara eksplisit. Jangan lewati kasus dibatalkan. Pengguna sering membatalkan alur kamera.
Contoh TypeScript
Jika proyek Anda menggunakan TypeScript, definisikan sendiri bentuk hasilnya agar bagian lain aplikasi bisa memakainya dengan rapi:
interface BarcodeScanResult {
text: string;
format: string;
cancelled: boolean;
}
function scanBarcode(): void {
cordova.plugins.barcodeScanner.scan(
(result: BarcodeScanResult) => {
if (result.cancelled) {
renderStatus('Scan cancelled');
return;
}
handleScannedCode(result);
},
(error: unknown) => {
renderStatus(`Scan failed: ${String(error)}`);
}
);
}
function handleScannedCode(result: BarcodeScanResult): void {
renderStatus(`Scanned ${result.format}: ${result.text}`);
if (!result.text) {
renderStatus('Empty scan result');
return;
}
lookupItemByCode(result.text);
}
function renderStatus(message: string): void {
const el = document.getElementById('scan-result');
if (el) el.textContent = message;
}
function lookupItemByCode(code: string): void {
console.log('Lookup code:', code);
}
Versi ini memisahkan proses scanning dari business logic. Ini penting karena plugin scanner seharusnya hanya menangkap input. Validasi, lookup, dan navigasi harus ditangani di tempat lain.
Cara menangani hasil scan
Alur setelah scan yang baik biasanya salah satu dari berikut:
- Alur lookup: Gunakan teks hasil scan untuk mengambil data produk, pesanan, atau aset.
- Alur validasi: Bandingkan nilai hasil scan dengan code yang diharapkan dan sudah ada di layar.
- Alur navigasi: Arahkan user ke tugas yang terkait dengan item hasil scan tersebut.
- Alur capture: Simpan nilainya secara lokal untuk disinkronkan nanti.
Jangan biarkan callback scanner jadi tempat penumpukan panggilan API, update DOM, analytics, dan navigasi. Segera teruskan nilainya.
Selain itu, log hasil mentah selama testing awal. Meskipun UI produksi Anda hanya butuh text, hasil yang dikembalikan format berguna untuk debugging label yang tidak sesuai. Jika tim operasional bilang “scanner tidak bisa baca code ini,” format data sering menunjukkan apakah masalahnya tipe barcode, bukan kualitas barcode.
Testing dan Troubleshooting Error Umum
Kebanyakan masalah barcode scanner Cordova bukan berasal dari scan API itu sendiri. Biasanya berasal dari batas antara web UI, native view, dan izin perangkat. Di sinilah demo yang mulus berubah jadi laporan bug yang membingungkan.
Masalah tersulit untuk didiagnosis adalah bug rendering Android yang muncul saat migrasi Capacitor atau setup campuran Cordova-Capacitor. Seorang developer di Capacitor issue #1213 menjelaskannya dengan lugas: “Saya mencoba plugin ini di aplikasi capacitor saya, tapi sepertinya scanner-nya ada di belakang aplikasi”, dan solusinya memerlukan pengaturan background webview native menjadi transparan serta perubahan transparansi DOM yang sesuai, yang biasanya tidak dibahas di tutorial Cordova standar, sebagaimana didokumentasikan dalam diskusi masalah rendering Android Capacitor. Jika Anda sedang melakukan debugging migrasi hybrid, panduan ini untuk debugging aplikasi Capacitor layak untuk tetap dibuka.
Preview Android di balik bug aplikasi
Gejala
Anda menjalankan scanner. Izin terlihat normal. Tidak ada crash yang jelas. Namun, preview kamera tampak tidak muncul, terhalang, atau berada “di belakang” UI aplikasi.
Penyebab
Native scanner view dan webview dilapisi secara berbeda dari yang diharapkan plugin Cordova asli. Pada Android dengan setup gaya Capacitor, background webview bisa tetap opaque, sehingga preview native sebenarnya ada tetapi tetap tersembunyi di bawahnya.
Solusi
Terapkan setup view transparan di kedua sisi:
- Sisi native: Atur background webview menjadi transparan.
- Sisi web: Hapus background opaque dari elemen container yang menutupi scanner preview.
- Sisi layout: Periksa wrapper layar penuh, shell modal, dan kontainer halaman framework untuk warna latar belakang default.
- Sisi pengujian: Validasi pada perangkat Android fisik karena perilaku layout bisa menyesatkan di shell pengembangan.
Ini bug yang bikin developer mengira plugin-nya rusak, padahal masalahnya ada di komposisi view.
Kegagalan izin dan false negative
Izin (permissions) gagal dengan cara yang terlihat seperti bug scanner.
Jika pengguna menolak akses kamera, callback Anda mungkin menampilkan error generik, atau scanner tidak muncul sesuai harapan. Tangani penolakan izin sebagai alur normal di UI. Beri tahu pengguna apa yang terjadi dan cara mencoba lagi setelah mengaktifkan akses. Terutama di iOS, teks izin yang tidak jelas menimbulkan rasa tidak percaya sebelum pengguna sempat melihat scanner.
Beberapa kebiasaan yang membantu:
- Picu pemindaian dari aksi pengguna yang jelas: Prompt izin terasa kurang mencurigakan.
- Tampilkan input fallback: Input manual menjaga alur kerja tetap berjalan.
- Tes path deny lalu retry: Banyak tim hanya mengetes happy path sekali.
Masalah Build dan testing perangkat
Beberapa error hanya muncul di environment tertentu.
| Masalah | Kemungkinan penyebab | Solusi praktis |
|---|---|---|
| Scanner terbuka tapi tidak mengembalikan hasil yang berguna | Format barcode tidak didukung atau tidak terduga | Tes dengan label yang dikenal dan cocok dengan use case Anda |
| Build gagal setelah install plugin | Platform atau dependency tidak sinkron di proyek lama | Sinkronkan package platform sebelum mengubah app code |
| Berfungsi di satu app shell tapi tidak di yang lain | Layering view atau interferensi CSS | Kembalikan layar ke layout minimal dan tambahkan kembali style secara bertahap |
| Perilaku emulator menyesatkan | Simulasi kamera tidak mencerminkan realitas perangkat | Tes di hardware Android dan iPhone fisik sejak awal |
Sederhanakan halaman menjadi satu tombol dan satu elemen hasil saat debugging. Jika scanner berfungsi di sana, masalahnya biasanya pada layout atau app shell code, bukan plugin.
Tips Performa dan Migrasi ke Capacitor
Barcode scanner bisa decode dengan benar tapi tetap gagal di penggunaan nyata. Masalahnya biasanya muncul berupa lag, flicker, glitch preview kamera, atau layar Android yang berperilaku berbeda di berbagai perangkat dari pool test yang sama.
Pada app Cordova lama, decoder sering kali bukan titik lemahnya. Webview, view layering, dan code yang merespons hasil scan biasanya lebih sering menimbulkan masalah daripada pengenalan barcode itu sendiri.
Mulai dengan menjaga cakupan layar scan tetap sempit. Jika layar itu untuk memindai label inventaris, biarkan ia memindai label inventaris saja. Filter tambahan, panel animasi, dan pembaruan state yang luas menambah kerja redraw tepat di tempat rendering WebView Android sudah rapuh.
Beberapa perubahan cenderung memberikan hasil cepat:
- Batasi format barcode yang diterima jika plugin Anda mendukungnya. Itu mengurangi pembacaan salah dan membuat cakupan pengujian lebih mudah dipahami.
- Jaga agar logika pasca-scan tetap singkat. Parse, validasi, dan perbarui bagian UI sekecil mungkin.
- Blokir pembacaan duplikat sejenak. Beberapa perangkat akan memicu hasil yang sama beberapa kali sebelum pengguna menggerakkan kamera.
- Rancang entri manual ke dalam alur. Label rusak, pencahayaan buruk, dan kemasan reflektif masih sering terjadi di lingkungan live.
- Pantau biaya repaint Android dengan cermat. Overlay berat, transisi CSS, dan komponen berlapis dapat menstabilkan pratinjau kamera di dalam webview Cordova.

Jalur migrasi praktis ke Capacitor
Migrasi Cordova ke Capacitor yang paling bersih dilakukan secara bertahap, bukan sekaligus. Tim akan kesulitan jika mengganti app container, plugin scanner, alur permission, dan overlay UI dalam satu waktu, lalu tidak tahu perubahan mana yang menyebabkan masalah.
Gunakan urutan ini sebagai gantinya:
-
Audit plugin saat ini
Buat daftar semua plugin Cordova dan tandai masing-masing sebagai aktif, dapat diganti, atau berisiko karena bergantung pada perilaku platform lama. -
Pindahkan app shell terlebih dahulu
Jalankan web app yang ada di dalam Capacitor sebelum mengganti scanner code. Ini memisahkan masalah container dari masalah plugin. -
Tetap gunakan plugin Cordova untuk transisi singkat jika perlu
Kompatibilitas sementara sering kali lebih aman daripada menulis ulang scanner, akses file, dan penanganan permission secara bersamaan. -
Ganti bagian scanner yang rentan lebih awal
Plugin lama yang bergantung pada custom overlay, perilaku Android yang tidak terdokumentasi, atau penanganan kamera yang usang harus diprioritaskan di urutan atas.
Bug pratinjau kamera di Android layak mendapat perhatian khusus karena membuang banyak waktu debugging. Saya pernah melihat layar scanner gagal karena pratinjau native berada di belakang webview, terpotong di tepi, atau menampilkan hitam di perangkat Android tertentu. Pada titik itu, plugin barcode biasanya disalahkan pertama, padahal komposisi view adalah masalah dasarnya.
Anggap itu sebagai investigasi rendering, bukan hanya investigasi scanner. Hapus overlay dekoratif. Kurangi halaman menjadi pratinjau, satu trigger, dan satu field hasil. Jika pratinjau menjadi stabil setelah itu, masalahnya biasanya struktur layar atau CSS Anda, bukan decoding.
Di sinilah migrasi ke Capacitor mulai membenarkan dirinya. Capacitor tidak menghilangkan semua bug kamera, tetapi biasanya memberikan batas yang lebih bersih antara penanganan view native dan code UI web. Untuk pemindaian barcode, @capgo/camera-preview menampilkan feed kamera live sebagai overlay native dengan kontrol yang dapat dikustomisasi, sehingga Anda dapat mendekode frame di JavaScript tanpa pratinjau berada di belakang webview. Untuk pemindaian enterprise di perangkat Zebra, @capgo/capacitor-zebra-datawedge mengelola profil DataWedge dan trigger scan. Untuk alur kerja tag NFC, @capgo/capacitor-nfc menangani penemuan, pembacaan, dan penulisan tag native di iOS dan Android.
Proyek Cordova cenderung rusak karena usia plugin, pergeseran platform, dan asumsi tersembunyi di dalam integrasi lama. Proyek Capacitor menunjukkan masalah yang berbeda, terutama seputar penanganan lifecycle dan lapisan native, tetapi kegagalan tersebut lebih mudah dilacak karena sisi native-nya lebih eksplisit.
Jika scanner Cordova Anda saat ini hanya berfungsi setelah tumpukan perbaikan spesifik perangkat, berhenti menambahkan patch. Stabilkan layar scan, konfirmasi apakah bug preview Android benar-benar masalah layering webview, lalu migrasi dalam langkah-langkah terkontrol. Jalur ini lebih lambat selama seminggu, tetapi lebih cepat untuk sisa proyek.