/** * Copyright (c) 2015-present, Facebook, Inc. * * This source code is licensed under the MIT license found in the * LICENSE file in the root directory of this source tree. * * @flow * @providesModule VibrationExample */ 'use strict'; var React = require('react'); var ReactNative = require('react-native'); var { StyleSheet, View, Text, TouchableHighlight, Vibration, Platform, } = ReactNative; exports.framework = 'React'; exports.title = 'Vibration'; exports.description = 'Vibration API'; var pattern, patternLiteral, patternDescription; if (Platform.OS === 'android') { pattern = [0, 500, 200, 500]; patternLiteral = '[0, 500, 200, 500]'; patternDescription = `${patternLiteral} arg 0: duration to wait before turning the vibrator on. arg with odd: vibration length. arg with even: duration to wait before next vibration. `; } else { pattern = [0, 1000, 2000, 3000]; patternLiteral = '[0, 1000, 2000, 3000]'; patternDescription = `${patternLiteral} vibration length on iOS is fixed. pattern controls durations BETWEEN each vibration only. arg 0: duration to wait before turning the vibrator on. subsequent args: duration to wait before next vibration. `; } exports.examples = [ { title: 'Pattern Descriptions', render() { return ( {patternDescription} ); }, }, { title: 'Vibration.vibrate()', render() { return ( Vibration.vibrate()}> Vibrate ); }, }, { title: `Vibration.vibrate(${patternLiteral})`, render() { return ( Vibration.vibrate(pattern)}> Vibrate once ); }, }, { title: `Vibration.vibrate(${patternLiteral}, true)`, render() { return ( Vibration.vibrate(pattern, true)}> Vibrate until cancel ); }, }, { title: 'Vibration.cancel()', render() { return ( Vibration.cancel()}> Cancel ); }, }, ]; var styles = StyleSheet.create({ wrapper: { borderRadius: 5, marginBottom: 5, }, button: { backgroundColor: '#eeeeee', padding: 10, }, });