Buscar pacotes, repositórios e categorias de apps

Detalhes do pacotev1.2.0

flutter_web_bluetooth

Uma biblioteca para usar a API Web Bluetooth em seu projeto da web. Funcionará bem se usada em projetos IO.

Web
Downloads em 30 dias
122 mil
Curtidas
51
Pontos Pub
160

Instalar pacote

flutter pub add flutter_web_bluetooth

Visão geral do pacote

Orientação gerada a partir de informações públicas. Apenas para referência.

Um pacote Flutter que permite o acesso à API Web Bluetooth em aplicações web, permitindo a interação com dispositivos Bluetooth Low Energy (BLE) diretamente pelo navegador. Integra-se perfeitamente a projetos existentes do Flutter, incluindo aqueles voltados para a web e outras plataformas. Projetado para desenvolvedores que criam soluções baseadas na web para IoT ou aplicativos de comunicação com dispositivos, oferece suporte à descoberta, conexão e troca de dados com periféricos BLE. O pacote é mantido com foco na compatibilidade em diferentes ambientes.

Casos de uso

  • Conectando-se a dispositivos BLE a partir de um aplicativo da web
  • Criando painéis de IoT com dados de sensores em tempo real
  • Habilitar interfaces de controle de dispositivos baseadas na web
  • Integrando funcionalidade Bluetooth em aplicativos híbridos
  • Criando experiências de Bluetooth multiplataforma

Principais recursos

  • Acesso à API Web Bluetooth na web
  • Suporta descoberta de dispositivos e emparelhamento
  • Streaming de dados em tempo real de dispositivos BLE
  • Compatibilidade entre plataformas com Flutter
  • Integração simples com projetos Flutter existentes

Indicado para

  • Desenvolvedores web trabalhando com dispositivos BLE
  • Criadores de aplicativos IoT
  • Desenvolvedores de aplicativos híbridos que precisam de suporte ao Bluetooth
  • Prototipagem de recursos da web com Bluetooth
  • Projetos que exigem código nativo mínimo

Considerações

  • Requer permissão do usuário para acesso ao Bluetooth
  • Limitado a navegadores com suporte à API Web Bluetooth
  • Sem suporte para plataformas não-web
  • Depende de detalhes específicos do navegador
  • Pode exigir configuração adicional para contextos seguros (HTTPS)

README original

Snapshot do README original do repositório-fonte vinculado. Consulte o repositório para o conteúdo mais recente.

pub package

Introduction

Flutter web bluetooth is a Flutter Dart plugin to add support for the web bluetooth api.

The library doesn't require Flutter at all giving you the option to use it with projects like AngularDart.

It is also written in such a way that it will play nicely with Dart native projects. So if you have a cross-platform app and want to add web support you don't have to use conditional exports to exclude the library in native releases.

For example:

export 'src/unsupported_library.dart'
    if (dart.library.js_interop) 'src/web_library.dart';

It will (of course) not work when not used in a browser, but it will compile!

The example code in this project is hosted on Github pages. Checkout jeroen1602.github.io/flutter_web_bluetooth/ for a proof of concept.

Limited support

The web bluetooth is still a draft, because of this it is not (yet) supported in every browser. Check canIUse.com for information about browser support.

Some parts of the api aren't available in every version of the browser.

Requirements

The device and browser you're testing on needs to support the web api. For Chrome on Linux this is hidden behind a flag. I've created a patch file which you can use to launch Google Chrome, from flutter run with the required flag enabled. Check the chrome-experimental-launch folder's README for more information.

You will also need a secure context or else the api will not be available. So either https, or localhost.

Usage

First check if the current browser supports the web bluetooth api.

// The bluetooth api exists in this user agent.
final supported = FlutterWebBluetooth.instance.isBluetoothApiSupported;

After this we will need to check if bluetooth is available

// A stream that says if a bluetooth adapter is available to the browser.
final available = FlutterWebBluetooth.instance.isAvailable;

Now request a device from the browser. You must beforehand specify which services you want to connect to! If you do not request access to a specific service then you won't be able to discover the service!

Some services are also part of a so called blocklist. This is different per browsers and these services are just off limit. The Web Bluetooth Community Group has a list of all block services and characteristics.

// Define the services you want to communicate with here!
final requestOptions = RequestOptionsBuilder.acceptAllDevices(optionalServices: [
  BluetoothDefaultServiceUUIDS.deviceInformation.uuid
]);

try {
  final device = await FlutterWebBluetooth.instance.requestDevice(requestOptions);
} on UserCancelledDialogError {
  // The user cancelled the dialog
} on DeviceNotFoundError {
  // There is no device in range for the options defined above
}

Now that you have a device, you can go through the services and then find the characteristics you want to read.

await device.connect();
final services = await device.discoverServices();
final service = services.firstWhere((service) => service.uuid == BluetoothDefaultServiceUUIDS.deviceInformation.uuid);
// Now get the characteristic
final characteristic = await service.getCharacteristic(BluetoothDefaultCharacteristicUUIDS.manufacturerNameString.uuid);
final value = characteristic.readValue();
// Now we have a [ByteData] object with the manufacturer name in it.
device.disconnect();

Once you have paired to a device you can communicate with it again without the user needing to pair to it again. Get a reference back to all the connected devices by listening to the devices stream.

Note: This feature will only work if the "Experimental Web Platform features" flag is enabled.

// A stream with a [Set] of all the devices that the user has paired, and given permission for.
FlutterWebBluetooth.instance.devices;

You can also overwrite the logger that his library uses. This allows you to decide where log messages go. See logging on pub.dev for more info on how to intercept these messages.

import 'package:flutter_web_bluetooth/web_bluetooth_logger.dart';

setWebBluetoothLogger(Logger("my logger"));

Categorias

Dependências

Lista de dependências 3 itens

Repositório-fonte

Projetos que usam este pacote

Rankings