@matthewwarnes/react-native-ble-manager-plugin
v1.1.1
Published
Config plugin to auto configure react-native-ble-manager on prebuild
Downloads
1,122
Readme
matthewwarnes/react-native-ble-manager-plugin
Based on @config-plugins/react-native-ble-plx
Config plugin to auto-configure react-native-ble-manager
when the native code is generated (expo prebuild
).
Expo installation
Version for Expo 49
This package cannot be used in the "Expo Go" app because it requires custom native code. First install the package with yarn, npm, or
expo install
.
expo install react-native-ble-manager @matthewwarnes/react-native-ble-manager-plugin
After installing this npm package, add the config plugin to the plugins
array of your app.json
or app.config.js
:
{
"expo": {
"plugins": ["@matthewwarnes/react-native-ble-manager-plugin"]
}
}
Next, rebuild your app as described in the "Adding custom native code" guide.
API
The plugin provides props for extra customization. Every time you change the props or plugins, you'll need to rebuild (and prebuild
) the native app. If no extra properties are added, defaults will be used.
isBackgroundEnabled
(boolean): Enable background BLE support on Android. Adds<uses-feature android:name="android.hardware.bluetooth_le" android:required="true"/>
to theAndroidManifest.xml
. Defaultfalse
.neverForLocation
(boolean): Set to true only if you can strongly assert that your app never derives physical location from Bluetooth scan results. The location permission will be still required on older Android devices. Note, that some BLE beacons are filtered from the scan results. Android SDK 31+. Defaultfalse
. WARNING: This parameter is experimental and BLE might not work. Make sure to test before releasing to production.modes
(string[]): Adds iOSUIBackgroundModes
to theInfo.plist
. Options are:peripheral
, andcentral
. Defaults to undefined.bluetoothAlwaysPermission
(string | false): Sets the iOSNSBluetoothAlwaysUsageDescription
permission message to theInfo.plist
. Settingfalse
will skip adding the permission. Defaults toAllow $(PRODUCT_NAME) to connect to bluetooth devices
.bluetoothPeripheralPermission
(string | false): Sets the iOSNSBluetoothPeripheralUsageDescription
permission message to theInfo.plist
. Settingfalse
will skip adding the permission. Defaults toAllow $(PRODUCT_NAME) to connect to bluetooth devices
.
Example
{
"expo": {
"plugins": [
[
"@matthewwarnes/react-native-ble-manager-plugin",
{
"isBackgroundEnabled": true,
"modes": ["peripheral", "central"],
"bluetoothAlwaysPermission": "Allow $(PRODUCT_NAME) to connect to bluetooth devices",
"bluetoothPeripheralPermission": "Allow $(PRODUCT_NAME) to connect to bluetooth devices"
}
]
]
}
}