Skip to content

Releases: rdlabo-dev/capacitor-brotherprint

v8.2.0 — Bluetooth support and discovery reliability

Choose a tag to compare

@rdlabo rdlabo released this 09 Sep 03:09

Bluetooth support, with the discovery crash resolved

Bluetooth is now an officially supported connection option for compatible printers on iOS and Android. This release resolves the discovery crash that previously blocked iOS Bluetooth setup, corrects Android Bluetooth permission handling, and documents the verified QL-820NWBc support path.

The iOS crash (-[__NSCFString count]: unrecognized selector) came from an incorrect Info.plist type in our examples: UISupportedExternalAccessoryProtocols was a string instead of an array. The examples are now corrected, and iOS discovery can open the system accessory-pairing flow when no connected printer is found. The Bluetooth usage-description keys remain strings; those keys were not the cause. (#34)

Action required for existing iOS apps

If your app copied the old configuration, update your app's Info.plist; upgrading the plugin alone does not change it:

<key>UISupportedExternalAccessoryProtocols</key>
<array>
    <string>com.brother.ptcbp</string>
</array>

On Android, pair your Bluetooth Classic printer in system settings before searching. See the installation guide for permissions and SDK setup, and the support matrix for model-specific coverage. Bluetooth Classic and BLE are distinct: this release does not add BLE capability to QL-820NWB/QL-820NWBc or claim every model/transport has been hardware-tested.

Optional printer-only Bluetooth discovery on Android

Enable bluetoothPrintersOnly to hide paired devices that do not report the Bluetooth Imaging/Printer class:

import { BrotherPrint, BRLMPrinterPort } from '@rdlabo/capacitor-brotherprint';

await BrotherPrint.search({
  port: BRLMPrinterPort.bluetooth,
  searchDuration: 15,
  bluetoothPrintersOnly: true,
});

The option defaults to false, preserving existing results. It is independent of device names, applies only to Android Bluetooth Classic, and is ignored for other ports and on iOS. It identifies printer classes, not Brother products: other manufacturers' printers may remain, while devices with unknown classes are excluded when enabled. (#39)

Reliability fixes

  • Android USB permission requests no longer overwrite pending calls; permission results settle the corresponding call once. (#35)
  • Android Wi-Fi and USB searches finish their promises after discovery and report SDK search errors instead of resolving immediately. Callers awaiting search() now wait for completion. (#36)
  • iOS Wi-Fi search cancellation now completes its promise; Bluetooth/BLE discovery error handling has also been corrected. (#34)
  • Invalid Base64 and non-image input are rejected before opening a printer rather than crashing during image decoding. (#37)
  • Existing print validation failures now emit onPrintError as well as reject the call. iOS print-settings creation failures are no longer classified as connection failures. Plugin validation events use code: 0; channel-open failures continue to emit onPrintFailedCommunication. (#38)

Regression coverage and documentation

  • Added SDK-free CI tests for Android Bluetooth filtering and iOS image decoding, exercising production logic without distributing the Brother SDK. These are not hardware or full SDK integration tests. (#40)
  • Expanded installation, search, printing, and event guides, with generated API references and clearer compatibility notes.

Upgrade

npm install @rdlabo/capacitor-brotherprint@8.2.0
npx cap sync

The optional search flag is backward-compatible. Review the corrected search-completion timing and additional error events if your app depends on the previous behavior. The Brother SDK remains a separately installed dependency; existing platform and model limitations still apply.

More detail: https://rdlabo.dev/articles/capacitor-brotherprint-bluetooth-v8-2

Full changelog: v8.1.1...v8.2.0

v8.1.1

Choose a tag to compare

@rdlabo rdlabo released this 07 Mar 08:51
  • feat(): rename method isPortAvailable to isCannelAvaiable c11c6b3
  • Merge pull request #24 from rdlabo-team/feat/add_isPortAvailable 60bfeab
  • chore: update readme 3a39623
  • fmt 98802be
  • Merge branch 'main' into feat/add_isPortAvailable a7d7e44
  • fix(android): update registerReceiver a53dab3
  • Merge branch 'main' into feat/add_isPortAvailable d5caa52
  • fmt b67e4c3
  • feat(method): add isPortAvailable method e087e02
  • refactor(): split interfaces from definitions b242c88
  • feat(demo): ng update to 21 f0ad03d

v8.0.0...v8.1.1

v8.0.0

Choose a tag to compare

@rdlabo rdlabo released this 31 Dec 06:37
  • chore: prepare release versioning 104d05c
  • chore: update support node version 8413cfa
  • Merge pull request #23 from rdlabo-team/feat/v8 d383f6f
  • feat(): update to v8 9579122

v7.0.2-0...v8.0.0

v7.0.2-0

v7.0.2-0 Pre-release
Pre-release

Choose a tag to compare

@rdlabo rdlabo released this 19 Dec 14:33
  • chore(ci): update deloy 81821c1
  • fix: ignore BrotherPrintSDK ca98a17
  • fix(): removed BRLMPrinterKit. These files should not be obtained from the plugin. 94b84c9
  • Set GitHub Sponsors username to rdlabo 9b84fe2

v7.0.1...v7.0.2-0

v7.0.1

Choose a tag to compare

@rdlabo rdlabo released this 17 Apr 00:27
  • fix(android): migrate to v7 a57a276

v7.0.0...v7.0.1

v7.0.0

Choose a tag to compare

@rdlabo rdlabo released this 16 Apr 09:23

v7.0.0-1...v7.0.0

v7.0.0-1

v7.0.0-1 Pre-release
Pre-release

Choose a tag to compare

@rdlabo rdlabo released this 16 Apr 05:36

v7.0.0-0...v7.0.0-1

v7.0.0-0

v7.0.0-0 Pre-release
Pre-release

Choose a tag to compare

@rdlabo rdlabo released this 16 Apr 05:21

v6.4.4...v7.0.0-0

v6.4.5

Choose a tag to compare

@rdlabo rdlabo released this 16 Apr 22:45

v6.4.4...v6.4.5

v6.4.4

Choose a tag to compare

@rdlabo rdlabo released this 14 Nov 02:31

v6.4.3...v6.4.4