New Research: Supply Chain Attack on Axios Pulls Malicious Dependency from npm.Details
Socket
Book a DemoSign in
Socket

rn-esptouch

Package Overview
Dependencies
Maintainers
1
Versions
1
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

rn-esptouch

React-native wrapper of the ESPTouch

latest
Source
npmnpm
Version
1.0.0
Version published
Maintainers
1
Created
Source

rn-esptouch

This is a Unofficial project. The official demo is below:

EsptouchForAndroid

EsptouchForIOS

Getting started

$ npm install rn-esptouch --save

Mostly automatic installation

$ react-native link rn-esptouch

Manual installation

iOS

  • In XCode, in the project navigator, right click LibrariesAdd Files to [your project's name]
  • Go to node_modulesrn-esptouch and add RNEsptouch.xcodeproj
  • In XCode, in the project navigator, select your project. Add libRNEsptouch.a to your project's Build PhasesLink Binary With Libraries
  • Run your project (Cmd+R)<

Android

  • Open up android/app/src/main/java/[...]/MainActivity.java
  • Add import com.rickl.rn.esptouch.RNEsptouchPackage; to the imports at the top of the file
  • Add new RNEsptouchPackage() to the list returned by the getPackages() method
  • Append the following lines to android/settings.gradle:
    include ':rn-esptouch'
    project(':rn-esptouch').projectDir = new File(rootProject.projectDir, 	'../node_modules/rn-esptouch/android')
    
  • Insert the following lines inside the dependencies block in android/app/build.gradle:
      compile project(':rn-esptouch')
    

Additional react native modules needed for getting location service permission

react-native-permissions react-native-android-location-service

Usage

import React, { Component } from "react";
import { Platform, StyleSheet, Text, Button, View, DeviceEventEmitter } from "react-native";
import RNEsptouch from "rn-esptouch";
import Permissions from "react-native-permissions";
import RNAndroidLocationService from "react-native-android-location-service";

export default class App extends Component {
    constructor(props) {
        super(props);
        this.onPress = this.onPress.bind(this);
    }
    state = {
        lng: 0.0,
        lat: 0.0
    };

    //request permission to access location
    requestPermission = () => {
        Permissions.request("location").then(response => {
            //returns once the user has chosen to 'allow' or to 'not allow' access
            //response is one of: 'authorized', 'denied', 'restricted', or 'undetermined'
            this.setState({ locationPermission: response });
        });
    };

    onLocationChange(e) {
        this.setState({
            lng: e.Longitude,
            lat: e.Latitude
        });
    }

    componentDidMount() {
        this.requestPermission();
        if (!this.eventEmitter) {
            // Register Listener Callback - has to be removed later
            this.eventEmitter = DeviceEventEmitter.addListener("updateLocation", this.onLocationChange.bind(this));
            // Initialize RNGLocation
            if (Platform.OS === "android") {
                RNAndroidLocationService.getLocation();
            }
        }
        RNEsptouch.initESPTouch();
    }

    componentWillUnmount() {
        // Stop listening for Events
        this.eventEmitter.remove();

        RNEsptouch.finish();
    }

    onPress() {
        let connected_wifi_password = "12345678";
        let broadcast_type = 1; // 1: broadcast;	0: multicast
        RNEsptouch.startSmartConfig(connected_wifi_password, broadcast_type).then(res => {
            if (res.code == 200) {
                // ESPTouch success
                console.log(res);
            } else {
                // ESPTouch failed
                console.info(res.msg);
            }
        });
    }

    render() {
        return (
            <View>
                <Text>
                    Lng: {this.state.lng} Lat: {this.state.lat}
                </Text>
                <Button title='test' onPress={this.onPress} />
            </View>
        );
    }
}

Licence

Licence

Keywords

react-native

FAQs

Package last updated on 21 Jul 2022

Did you know?

Socket

Socket for GitHub automatically highlights issues in each pull request and monitors the health of all your open source dependencies. Discover the contents of your packages and block harmful activity before you install or update your dependencies.

Install

Related posts