Pesquisa de site

javascript - Testar o status do Bluetooth no OSX (Ativo ou Não) usando JS ou TS ou electron


Desenvolvi um aplicativo móvel usando Ionic 4, a principal funcionalidade do meu aplicativo é escanear, conectar e receber dados de um equipamento médico usando o protocolo BLE.

Agora, nosso cliente quer ter a mesma versão funcionando no OSx e, para isso, tivemos que implementar a parte de BLE usando electron juntamente com ionic 4 e funciona bem, mas não conseguimos encontrar uma solução para detectar o status do bluetooth: (ativo ou não).

Eu realmente aprecio qualquer tipo de ajuda, não consigo descobrir e me sinto realmente preso :/

Como o código é basicamente TypeScript e JavaScript, qualquer solução com uma dessas tecnologias funcionará.

Estamos usando a API web Bluetooth para fazer a parte BLE funcionar no aplicativo OSX.

a função:

navigator.bluetooth.requestDevice()

mostrar um alerta caso o bluetooth não esteja ativo ou nenhum dispositivo seja detectado se houver uma maneira de eu substituir este alerta caso o bluetooth esteja inativo, eu acho que é a solução certa?

A propósito, a função:

navigator.bluetooth.getAvailability()

apenas me diga se o dispositivo atual (Mac) tem bluetooth ou não, ele não retorna o status do bluetooth.

Gente, eu realmente agradeço a ajuda de vocês e obrigado desde já.

Resposta #1

Há alguns anos, tentei criar um protótipo de aplicativo Electron que se comunica com dispositivos médicos via Bluetooth (glicômetro, monitor de pressão arterial, balança, etc). Fiquei surpreso que minha base de código em Ionic 1 para o aplicativo móvel funcionasse no Electron com apenas ajustes mínimos. O aplicativo funciona e foi testado no WinXP, Win7, Win8 e Win10 de 32 e 64 bits, MacOSX Mavericks e Ubuntu Linux. Só não é bom que eles não tenham continuado com esse projeto. Eu estava usando o mesmo plugin do Ionic para Bluetooth de baixa energia.

https://github.com/randdusing/cordova-plugin-bluetoothle

Não encontrei problemas no controle e operação do Bluetooth. Meu principal foco de programação estava mais voltado para Electron e coisas de Node.js.

Quanto à API WEB para Bluetooth, eu também estudei isso antes, mas nunca encontrei uma maneira de fazê-la funcionar.

Como você mencionou que já desenvolveu um aplicativo Ionic com funcionalidade BLE, eu estava me perguntando se você também tentou usar o mesmo código na aplicação Electron e também usar o mesmo plugin BLE. Eu acho que isso também funcionaria.