React Native Vibration | Start Stop Device Vibration in React Native
React Native device vibration
React Native Start Stop Device Vibration includes the way you can start and start the vibration on a button click. you can vibrate the device when you want to give feedback on any action performed by the user. For example, if you use any keyboard you can generate small vibration so that user come to know that some action was performed.
We will use Vibration
component to vibrate the Device. It is one of the basic components provided by the React native.
To Import Vibration
import { Vibration} from 'react-native'
Start the Vibration Using
Vibration.vibrate(DURATION)
Stop the Vibration Using
Vibration.cancel()
Android Permission
Android apps should request the android.permission.VIBRATE permission by adding following permission to AndroidManifest.xml.
<uses-permission android:name="android.permission.VIBRATE"/>
Code
Open App.js in any code editor and replace the code with the following code
import React from 'react';
import {
Button,
Platform,
Text,
Vibration,
View,
SafeAreaView,
StyleSheet,
} from 'react-native';
const Separator = () => {
return <View style={Platform.OS === 'android' ? styles.separator : null} />;
};
const App = () => {
const ONE_SECOND_IN_MS = 1000;
const PATTERN = [
1 * ONE_SECOND_IN_MS,
2 * ONE_SECOND_IN_MS,
3 * ONE_SECOND_IN_MS,
];
const PATTERN_DESC =
Platform.OS === 'android'
? 'wait 1s, vibrate 2s, wait 3s'
: 'wait 1s, vibrate, wait 2s, vibrate, wait 3s';
return (
<SafeAreaView style={styles.container}>
<Text style={[styles.header, styles.paragraph]}>Vibration API</Text>
<View>
<Button title="Vibrate once" onPress={() => Vibration.vibrate()} />
</View>
<Separator />
{Platform.OS === 'android'
? [
<View>
<Button
title="Vibrate for 10 seconds"
onPress={() => Vibration.vibrate(10 * ONE_SECOND_IN_MS)}
/>
</View>,
<Separator />,
]
: null}
<Text style={styles.paragraph}>Pattern: {PATTERN_DESC}</Text>
<Button
title="Vibrate with pattern"
onPress={() => Vibration.vibrate(PATTERN)}
/>
<Separator />
<Button
title="Vibrate with pattern until cancelled"
onPress={() => Vibration.vibrate(PATTERN, true)}
/>
<Separator />
<Button
title="Stop vibration pattern"
onPress={() => Vibration.cancel()}
color="#FF0000"
/>
</SafeAreaView>
);
};
const styles = StyleSheet.create({
container: {
flex: 1,
justifyContent: 'center',
paddingTop: 44,
padding: 8,
},
header: {
fontSize: 18,
fontWeight: 'bold',
textAlign: 'center',
},
paragraph: {
margin: 24,
textAlign: 'center',
},
separator: {
marginVertical: 8,
borderBottomColor: '#737373',
borderBottomWidth: StyleSheet.hairlineWidth,
},
});
export default App;
Visited 11 times, 1 visit(s) today