Skip to content

fermuch/react-native-battery-status

 
 

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

22 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

React Native BatteryStatus (remobile)

A cordova battery status listener for react-native, support for ios and android

Installation

npm install @remobile/react-native-battery-status --save

Installation (iOS)

  • Drag RCTBatteryStatus.xcodeproj to your project on Xcode.
  • Click on your main project file (the one that represents the .xcodeproj) select Build Phases and drag libRCTBatteryStatus.a from the Products folder inside the RCTBatteryStatus.xcodeproj.
  • Look for Header Search Paths and make sure it contains both $(SRCROOT)/../../../react-native/React as recursive.

Installation (Android)

...
include ':react-native-battery-status'
project(':react-native-battery-status').projectDir = new File(settingsDir, '../node_modules/@remobile/react-native-battery-status/android')
  • In android/app/build.gradle
...
dependencies {
    ...
    compile project(':react-native-battery-status')
}
  • register module (in MainApplication.java)
......
import com.remobile.batteryStatus.RCTBatteryStatusPackage;  // <--- import

......

@Override
protected List<ReactPackage> getPackages() {
   ......
   new RCTBatteryStatusPackage(),            // <------ add here
   ......
}

Extra installtion

Android

  • This plugin uses react-native-cordova internally. So you need to add it to your project too. Follow these steps to install react-native-cordova.
  • Android:
  • In android/settings.gradle
...
include ':react-native-cordova'
project(':react-native-cordova').projectDir = new File(settingsDir, '../node_modules/@remobile/react-native-cordova/android')

Ios:

  • TBD

Usage

Example

var React = require('react');
var ReactNative = require('react-native');
var {
    StyleSheet,
    View,
    Image
} = ReactNative;

var BatteryStatus = require('@remobile/react-native-battery-status');
var Button = require('@remobile/react-native-simple-button');

module.exports = React.createClass({
    getInitialState () {
        return {
            status: '',
        };
    },
    onBatteryStatus(info) {
        this.setState({status: JSON.stringify({onBatteryStatus: info})});
    },
    onBatteryLow(info) {
        this.setState({status: JSON.stringify({onBatteryLow: info})});
    },
    onBatteryCritical(info) {
        this.setState({status: JSON.stringify({onBatteryCritical: info})});
    },
    register() {
        BatteryStatus.register({
            onBatteryStatus: this.onBatteryStatus,
            onBatteryLow: this.onBatteryLow,
            onBatteryCritical: this.onBatteryCritical,
        });
    },
    unregister() {
        BatteryStatus.unregister();
    },
    render() {
        return (
            <View style={styles.container}>
                <Button onPress={this.register}>
                    register
                </Button>
                <Button onPress={this.unregister}>
                    unregister
                </Button>
                <Text>
                    {this.state.status}
                </Text>
            </View>
        );
    },
});


var styles = StyleSheet.create({
    container: {
        flex: 1,
        justifyContent: 'space-around',
        alignItems: 'center',
        backgroundColor: 'transparent',
    },
});

HELP

thanks

see detail use

About

No description, website, or topics provided.

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages

  • Java 44.4%
  • Objective-C 37.8%
  • JavaScript 17.8%