React Native bridge for Star Micronics printers.
This is a minimal maintenance fork of 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!
- 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. - 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.
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.
$ npm install rn-star-prnt --save
$ react-native link rn-star-prnt
-
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 addStarIO.xcframework
andStarIO_Extension.xcframework
. - Add
CoreBluetooth.framework
andExternalAccessory.framework
.
- Go to
-
Go to Build Settings > Search Paths and add:
$(PROJECT_DIR)/../node_modules/rn-star-prnt/ios/Frameworks
to Framework Search Paths.
-
For Bluetooth printers, update your
Info.plist
file:- Add Supported external accessory protocols (
UISupportedExternalAccessoryProtocols
). - Set
Item 0
to:jp.star-m.starpro
- Add Supported external accessory protocols (
import { StarPRNT } from 'rn-star-prnt';
async function portDiscovery() {
try {
let printers = await StarPRNT.portDiscovery('All');
console.log(printers);
} catch (e) {
console.error(e);
}
}
I am not actively maintaining this package beyond ensuring it remains functional. However, pull requests are welcome if you want to improve it!