A simple React Native plugin to switch a flashlight on/off.
Currently supports both iOS (>= 8.0) and Android (all versions).
Applies the permission checks on Android API >=25 devices. Below API 25, Android will automatically require the user to accept permissions on install / update.
npm install --save react-native-torch react-native link react-native-torch
npm install react-native-torch --save- In XCode, in the project navigator, right click
Libraries➜Add Files to [your project's name] - Go to
node_modules➜react-native-torchand addRCTTorch.xcodeproj - Expand the
RCTTorch.xcodeproj➜Productsfolder - In XCode, in the project navigator, select your project. Add
libRCTTorch.ato your project'sBuild Phases➜Link Binary With Libraries - Click
RCTTorch.xcodeprojin the project navigator and go theBuild Settingstab. Make sure 'All' is toggled on (instead of 'Basic'). In theSearch Pathssection, look forHeader Search Pathsand make sure it contains both$(SRCROOT)/../../react-native/Reactand$(SRCROOT)/../../../React- mark both asrecursive.
import Torch from 'react-native-torch'; Torch.switchState(true); // Turn ON Torch.switchState(false); // Turn OFF
import Torch from 'react-native-torch'; import { Platform } from 'react-native'; if (Platform.OS === 'ios') { Torch.switchState(this.isTorchOn); } else { const cameraAllowed = await Torch.requestCameraPermission( 'Camera Permissions', // dialog title 'We require camera permissions to use the torch on the back of your phone.' // dialog body ); if (cameraAllowed) { Torch.switchState(this.isTorchOn); } }
try { await Torch.switchState(newTorchState); this.setState({ isTorchOn: newTorchState }); } catch (e) { ToastAndroid.show( 'We seem to have an issue accessing your torch', ToastAndroid.SHORT ); }
NOTE: iOS fails silently, on Android, you can still call without the try/catch block and it won't cause a crash
A demo application TorchDemo is also available.
Android version has flow support.