requestPrinter method

  1. @override
Future<Printer?> requestPrinter({
  1. required PrinterType printerType,
})
override

Abre o seletor de dispositivos da plataforma para o usuário autorizar uma impressora, retornando-a já pronta para uso.

Hoje só faz sentido na Web/USB (WebUSB requestDevice): por restrição de segurança do browser não há como varrer dispositivos silenciosamente, e getPrinters na web retorna apenas os já autorizados. Em plataformas nativas o default é null — use getPrinters. Retorna null se não for suportado, se o usuário cancelar ou se nada for selecionado.

Implementation

@override
Future<Printer?> requestPrinter({required PrinterType printerType}) async {
  // Padrão recomendado pela WebUSB/Web Bluetooth: reusa um dispositivo já
  // autorizado (getDevices) e só abre o chooser se nenhum estiver pareado.
  switch (printerType) {
    case PrinterType.usb:
      final device = await usbEnsureDevice();
      return device == null ? null : _usbToPrinter(device);
    case PrinterType.bluetooth:
      final device = await bleEnsureDevice();
      return device == null ? null : _bleToPrinter(device);
    case PrinterType.network:
      return null;
  }
}