react-native-my-native-module

1.0.1 • Public • Published

react-native-my-native-module

Getting started

$ npm install react-native-my-native-module --save

Mostly automatic installation

$ react-native link react-native-my-native-module

Manual installation

iOS

  1. In XCode, in the project navigator, right click LibrariesAdd Files to [your project's name]
  2. Go to node_modulesreact-native-my-native-module and add RNMyNativeModule.xcodeproj
  3. In XCode, in the project navigator, select your project. Add libRNMyNativeModule.a to your project's Build PhasesLink Binary With Libraries
  4. Open info.plist, in the project navigator, add <key>NSLocationWhenInUseUsageDescription</key> <string></string>
  5. Run your project (Cmd+R)<

Android

  1. Append the following lines to android/settings.gradle:
    include ':react-native-my-native-module'
    project(':react-native-my-native-module').projectDir = new File(rootProject.projectDir, 	'../node_modules/react-native-my-native-module/android')
    
  2. Insert the following lines inside the dependencies block in android/app/build.gradle:
      compile project(':react-native-my-native-module')
    
  3. Insert the following lines inside the dependencies block in android/app/build.gradle:
      compile 'com.google.android.gms:play-services-location:x.y.z'
    
  • with x.y.z is version you want to add, suggest version higher 11.0.0
  1. Open up android/app/src/main/java/[...]/MainActivity.java
  • Add import com.reactlibrary.RNMyNativeModulePackage; to the imports at the top of the file
  • Add new RNMyNativeModulePackage() to the list returned by the getPackages() method
  1. Add permision for location follow open android/app/src/main/AndroidManifest.xml
  • Add <uses-permission android:name="android.permission.ACCESS_FINE_LOCATION" />
  • Add <uses-permission android:name="android.permission.ACCESS_COARSE_LOCATION" />

Usage

import RNMyNativeModule from 'react-native-my-native-module';
 
// TODO: What to do with the module?
RNMyNativeModule;
const MyModule = new NativeEventEmitter(RNMyNativeModule);
    ....
  regiterEvent() {
   Plaftform.OS ==='ios' && MyModule.addListener('authStatusDidChange', status => {
      console.log('=======> status', status);
      alert('status auth location thay doi nay!', status);
    });

    MyModule.addListener('didUpdateLocation', location => {
      this.setState({
        newLocation: location,
      });
    });
  }
RNMyNativeModule.getTimeStamp()
      .then(timestamp => {
        this.setState({ timestamp });
      })
      .catch(e => alert('Can not get timestapm'));

Medthod

  1. helloworld
    • type: callback -param: callback(string)
  2. getTimeStamp -type: promise -resolve(Number) -- current timestamp -reject(Object) -- Error
  3. checkPermissions -type: callback -param: callback(string) +ios: 'authorizedAlways','authorizedWhenInUse','denied','notDetermined','restricted' +android: 'granted', 'denied'
  4. checkEnableLocationService -type: callback -param: callback(boolen)

ios

  1. requestWhenInUseAuth
  2. requestAlwaysAuth

android

  1. openLocationServiceActivity -note: when locationservice (GPS) turn off open setting!
  2. startListenLoctionChange
    • note: started listen location change
  3. stopListenLocationChange -type: promise -resolve(true) -- turn off listener loction change -reject(false) -- Error

Event emiter

  1. didUpdateLocation
    • note: emit when loction changed
    • result: object

ios

  1. authStatusDidChange
    • note: emit when user change setting loction service
    • result: string ('authorizedAlways','authorizedWhenInUse','denied','notDetermined','restricted')

Readme

Keywords

Package Sidebar

Install

npm i react-native-my-native-module

Weekly Downloads

1

Version

1.0.1

License

MIT

Unpacked Size

36.2 kB

Total Files

20

Last publish

Collaborators

  • thanhpcc96