rn-star-prnt
Version:
Updated fork of react-native-star-prnt to maintain compatibility and functionality with Star Micronics Bluetooth/LAN printers
71 lines (50 loc) • 2.59 kB
Markdown
# rn-star-prnt
React Native bridge for [Star Micronics printers](http://www.starmicronics.com/pages/All-Products).
This is a **minimal maintenance fork** of [`react-native-star-prnt`](https://github.com/infoxicator/react-native-star-prnt), focused on **keeping the package functional** with updated dependencies. I do not actively maintain or provide support for issues, but contributions are welcome!
## Why This Fork?
- The original package was outdated and had compatibility issues.
- I updated the **iOS native code** to use the latest `xcframework` from [Star Micronics' official SDK](https://github.com/star-micronics/starprnt-sdk-ios-swift).
- This **fixes issues running on the iOS simulator** and ensures compatibility with recent Xcode versions.
- I **bumped dependencies**, ensuring the package works with recent React Native versions.
- **Converted `.m` files to `.mm`** where necessary to support C++ code.
### Why Not Use `react-native-star-io10`?
The newer `react-native-star-io10` package is well-maintained, but it **completely breaks printing on the TSP100**, which is my target printer. This fork ensures the older implementation remains functional while staying compatible with modern React Native versions.
---
## Installation
```sh
$ npm install rn-star-prnt --save
```
### Linking
```sh
$ react-native link rn-star-prnt
```
#### iOS Configuration
1. Open Xcode, go to **Build Phases** > **Link Binary with Libraries**, and add the following frameworks:
- Go to `node_modules/rn-star-prnt/ios/Frameworks` and add `StarIO.xcframework` and `StarIO_Extension.xcframework`.
- Add `CoreBluetooth.framework` and `ExternalAccessory.framework`.
2. Go to **Build Settings** > **Search Paths** and add:
```sh
$(PROJECT_DIR)/../node_modules/rn-star-prnt/ios/Frameworks
```
to **Framework Search Paths**.
3. For **Bluetooth printers**, update your `Info.plist` file:
- Add **Supported external accessory protocols** (`UISupportedExternalAccessoryProtocols`).
- Set `Item 0` to:
```sh
jp.star-m.starpro
```
---
## Usage
```javascript
import { StarPRNT } from 'rn-star-prnt';
async function portDiscovery() {
try {
let printers = await StarPRNT.portDiscovery('All');
console.log(printers);
} catch (e) {
console.error(e);
}
}
```
## Contributing
I am **not actively maintaining** this package beyond ensuring it remains functional. However, **pull requests are welcome** if you want to improve it!