requestPrinter method
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;
}
}