2022-09-16

使用 Web Bluetooth API

在下曾經使用 Web Gamepad API, Web Audio API, Web Speech API
只需要掌握 Web API 便可以簡單地編寫跨平台工具
即使只是使用者,都能夠隨時使用或分享給其他人使用,而且不需要花時間安裝

設定 Web Bluetooth API

由於暫時只有 Chromium-base 的網頁瀏覽器支援 Web Bluetooth API
因此在下使用 Google Chrome 測試

見下文
在網址列輸入 chrome://flags
搜尋 bluetooth

見下文
見下文
將資料設定為 Enabled
然後按 Relaunch 重新啟動 Google Chrome

啟動 Web Bluetooth API

製作啟動 Web Bluetooth API 的頁面
<!DOCTYPE html>
<html lang="en">
	<head>
		<meta http-equiv="Content-Type" content="text/html; charset=UTF-8"/>
		<title>Web Bluetooth API Test</title>
		<script>
//<!--
function test(service) {
	navigator.bluetooth.requestDevice({
		"acceptAllDevices": true,
		"optionalServices": [
			"alert_notification",
			"automation_io",
			"battery_service",
			"blood_pressure",
			"body_composition",
			"bond_management",
			"continuous_glucose_monitoring",
			"current_time",
			"cycling_power",
			"cycling_speed_and_cadence",
			"device_information",
			"environmental_sensing",
			"generic_access",
			"generic_attribute",
			"glucose",
			"health_thermometer",
			"heart_rate",
			"human_interface_device",
			"immediate_alert",
			"indoor_positioning",
			"internet_protocol_support",
			"link_loss",
			"location_and_navigation",
			"next_dst_change",
			"phone_alert_status",
			"pulse_oximeter",
			"reference_time_update",
			"running_speed_and_cadence",
			"scan_parameters",
			"tx_power",
			"user_data",
			"weight_scale",
		]
	}).then(function(device) {
		return device.gatt.connect();
	}).then(function(server) {
		return server.getPrimaryService(service);
	});
}
//-->
		</script>
	</head>
	<body>
		<input style="font-size: 500%;" type="button" value="Browse Web Bluetooth API" onclick="test('generic_attribute');"/>
	</body>
</html>
見下文
API按鈕

見下文
網頁會搜尋附近的藍牙裝置
例如在下使用的 BluetoothMouse3600
選擇後按 配對

Web Bluetooth API 經常會搜尋到大量 不明的或不支援的裝置
不必理會,亦無法追查這些裝置的來源

配對藍牙裝置

見下文
見下文
當 Web Bluetoothe API 配對後,電腦系統會再確認配對
完成後,便能夠使用藍牙裝置

總結

使用 Web API 必須使用 localhost檔案協定(file://)HTTPS協定(https://)

雖然 Web Bluetooth API 已經發佈一段時,在應用上仍然有很多藍牙裝置未完全支援 Web Bluetooth API
例如在下使用的 BluetoothMouse3600 在 Linux Mint 20.3 經 Web Bluetooth API 配對後,會提示系統配對
但在 Android 上配對後卻沒有作用
在下亦有其他藍牙裝置,能在 Linux Mint 20.3 上配對使用,但 Web Bluetooth API 配對後卻無法提示系統配對
Android 能夠配對使用,但 Web Bluetooth API 則無法偵測

不過在下並非擁有最新的藍牙裝置,亦可能只是舊的藍牙裝置沒有支援 Web Bluetooth API
或許新的藍牙裝置會支援 Web Bluetooth API

參考資料

沒有留言 :

張貼留言