Website modern tidak selalu harus berhenti pada layar dan formulir. Dengan Web Bluetooth API, aplikasi web yang berjalan di browser yang kompatibel dapat berkomunikasi langsung dengan perangkat Bluetooth Low Energy (BLE), misalnya sensor, alat ukur, atau perangkat kontrol sederhana. Pengguna tidak selalu perlu memasang aplikasi native terpisah untuk setiap perangkat.
Namun, kemampuan ini memiliki batas penting: dukungan browser belum merata, koneksi harus dimulai melalui interaksi pengguna, dan perangkat harus menyediakan layanan serta karakteristik GATT yang sesuai. Karena itu, Web Bluetooth paling tepat dipakai untuk kebutuhan tertentu, bukan sebagai pengganti universal bagi seluruh aplikasi Bluetooth.
Apa Itu Web Bluetooth API?
Web Bluetooth API adalah antarmuka JavaScript yang memungkinkan halaman web meminta izin pengguna untuk menemukan dan berkomunikasi dengan periferal BLE. Setelah pengguna memilih perangkat melalui dialog browser, aplikasi dapat terhubung ke server GATT perangkat tersebut, menemukan layanan, lalu membaca, menulis, atau menerima pembaruan karakteristik yang diizinkan perangkat.
BLE dirancang untuk komunikasi nirkabel berdaya rendah. Contoh penerapannya meliputi konfigurasi lampu pintar, membaca data sensor, mengatur perangkat demonstrasi di laboratorium, atau menampilkan nilai dari alat ukur yang mendukung GATT. API ini tidak berarti halaman web bisa mengakses sembarang perangkat Bluetooth atau semua fungsi sistem operasi.
Bagaimana Alur Kerjanya?
- Pengguna memulai tindakan. Misalnya menekan tombol “Hubungkan perangkat”. Permintaan izin tidak boleh muncul secara tiba-tiba tanpa aktivasi pengguna.
- Browser menampilkan pemilih perangkat. Situs meminta perangkat yang sesuai dengan filter layanan atau nama yang didukung.
- Pengguna memilih perangkat. Browser memberikan objek perangkat yang dipilih, bukan akses tanpa batas ke seluruh perangkat di sekitar.
- Aplikasi terhubung ke GATT. Kode mencari layanan dan karakteristik yang diperlukan, lalu melakukan operasi yang didukung perangkat.
- Koneksi dikelola dengan baik. Aplikasi menangani putusnya koneksi, izin yang dicabut, perangkat yang tidak merespons, dan data yang tidak valid.
GATT mengorganisasi kemampuan perangkat menjadi layanan dan karakteristik. Dokumentasi perangkat penting karena UUID layanan, format nilai, satuan, dan aturan penulisan dapat berbeda antarproduk.
Contoh Implementasi Dasar
Contoh berikut menunjukkan cara meminta perangkat yang mengiklankan layanan baterai standar, lalu membaca tingkat baterainya. Jalankan dari halaman HTTPS pada browser yang mendukung Web Bluetooth; perangkat yang dipilih juga harus mengekspos layanan tersebut.
async function bacaBaterai() {
try {
const device = await navigator.bluetooth.requestDevice({
filters: [{ services: ['battery_service'] }]
});
device.addEventListener('gattserverdisconnected', () => {
console.log('Perangkat terputus');
});
const server = await device.gatt.connect();
const service = await server.getPrimaryService('battery_service');
const characteristic =
await service.getCharacteristic('battery_level');
const value = await characteristic.readValue();
console.log('Level baterai:', value.getUint8(0), '%');
} catch (error) {
console.error('Koneksi Bluetooth gagal:', error);
}
}
document.querySelector('#connect')
.addEventListener('click', bacaBaterai);Contoh ini sengaja memakai layanan standar untuk demonstrasi. Jangan menganggap semua perangkat menyediakan layanan baterai. Pada implementasi nyata, validasi rentang nilai, tampilkan status yang mudah dipahami, dan sediakan cara untuk menghubungkan ulang setelah koneksi terputus.
Syarat Teknis dan Kompatibilitas
- Konteks aman: Web Bluetooth memerlukan secure context, biasanya HTTPS. Situs HTTP biasa tidak dapat mengandalkan API ini.
- Dukungan browser: implementasi terutama tersedia pada keluarga browser berbasis Chromium tertentu. Firefox dan Safari tidak menyediakan dukungan yang setara secara luas. Periksa tabel kompatibilitas terbaru sebelum menjadikannya fitur inti.
- BLE dan GATT: API ini ditujukan untuk periferal Bluetooth Low Energy, bukan koneksi Bluetooth klasik generik seperti semua headset audio.
- Izin dan kebijakan: akses dipengaruhi pilihan pengguna dan Permissions Policy. Iframe lintas origin dapat memerlukan konfigurasi izin tambahan.
- Lingkungan perangkat: dukungan dapat berbeda menurut sistem operasi, versi browser, perangkat keras, dan konfigurasi keamanan.
Sediakan pemeriksaan fitur, misalnya dengan memeriksa keberadaan navigator.bluetooth, lalu tampilkan penjelasan atau alur alternatif jika API tidak tersedia. Pemeriksaan tersebut hanya menunjukkan keberadaan antarmuka; bukan jaminan bahwa perangkat tertentu akan berhasil terhubung.
Kesimpulan
Web Bluetooth API memberi akses terbatas dan berbasis izin ke perangkat BLE yang dipilih pengguna. Minta hanya izin yang diperlukan, validasi semua data dari perangkat, tangani putusnya koneksi, dan sediakan alternatif ketika browser atau perangkat tidak mendukung fitur tersebut. Untuk tindakan yang berdampak pada keselamatan atau keamanan fisik, lakukan verifikasi tambahan di sisi perangkat.
PENGALAMAN BARU Coba tampilan baru Penasaran dengan pengalaman membaca Nazuaf versi modern? Coba tampilan baru yang dirancang agar nyaman dibaca dari ponsel dan pc. Buka versi modern dan lanjutkan membaca artikel ini. Jelajahi tampilan baru Nazuaf versi modern · Ketuk kartu untuk mencoba