wiliot-sdk-rn
v1.1.0
Published
Wiliot SDK for React Native - BLE scanning, MQTT, bridges, pixels, and IoT device management
Maintainers
Readme
wiliot-sdk-rn
Wiliot SDK for React Native - BLE scanning, MQTT communication, and IoT device management.
Installation
npm install wiliot-sdk-rn@latest react-native-ble-manager sp-react-native-mqtt @react-native-async-storage/async-storage react-native-device-info @reduxjs/toolkit react-reduxiOS Setup
Run cd ios && pod install, then add these keys to ios/YourAppName/Info.plist:
<key>NSBluetoothAlwaysUsageDescription</key>
<string>This app uses Bluetooth to scan for IoT devices.</string>
<key>UIBackgroundModes</key>
<array>
<string>bluetooth-central</string>
</array>Usage
import { SdkProvider, useSdk, useSdkState } from 'wiliot-sdk-rn';
export default function App() {
return (
<SdkProvider
config={{
apiBaseUrl: 'https://api.wiliot.com',
mqttBrokerUrl: 'mqtts://mqtt.wiliot.com:8883',
ownerId: 'YOUR_OWNER_ID',
apiKey: 'YOUR_API_KEY',
}}
autoInitialize
>
<MainScreen />
</SdkProvider>
);
}
function MainScreen() {
const { startScan, stopScan } = useSdk();
const { isScanning, connectionState, devices } = useSdkState();
return <YourUI />;
}Available Hooks
| Hook | Returns |
|------|---------|
| useSdk() | { sdk, initialize, startScan, stopScan, connect, disconnect, shutdown } |
| useSdkState() | { initialized, isScanning, connectionState, packetsForwarded, devices } |
| useSdkReady() | boolean - true when initialized and connected |
| useDevices() | BleDevice[] - discovered devices |
| useConnectionState() | 'disconnected' \| 'connecting' \| 'connected' \| 'error' |
| useIsScanning() | boolean |
Publishing a New Version
- Update the version in
package.json// for example: if the current version is1.0.0, then the next version should be1.0.1 - Build:
npm run clean && npm run build - Publish:
npm publish - Verify:
npm view wiliot-sdk-rn@latest version
