Coder Social home page Coder Social logo

gaborwnuk / react-native-device-info Goto Github PK

View Code? Open in Web Editor NEW

This project forked from react-native-device-info/react-native-device-info

0.0 1.0 0.0 113 KB

Device Information for React Native iOS and Android

License: MIT License

Ruby 1.88% Objective-C 50.33% Java 19.37% JavaScript 5.61% C# 22.80%

react-native-device-info's Introduction

react-native-device-info

npm version

Device Information for React Native

Install

npm install --save react-native-device-info

Automatically link

With React Native 0.27+

react-native link react-native-device-info

With older versions of React Native

You need rnpm (npm install -g rnpm)

rnpm link react-native-device-info

Manually link

iOS (via Cocoa Pods)

Add the following line to your build targets in your Podfile

pod 'RNDeviceInfo', :path => '../node_modules/react-native-device-info'

Then run pod install

iOS (without Cocoa Pods)

In XCode, in the project navigator:

  • Right click Libraries
  • Add Files to [your project's name]
  • Go to node_modules/react-native-device-info
  • Add the .xcodeproj file

In XCode, in the project navigator, select your project.

  • Add the libRNDeviceInfo.a from the deviceinfo project to your project's Build Phases โžœ Link Binary With Libraries
  • Click .xcodeproj file you added before in the project navigator and go the Build Settings tab. Make sure All is toggled on (instead of Basic).
  • Look for Header Search Paths and make sure it contains both $(SRCROOT)/../react-native/React and $(SRCROOT)/../../React
  • Mark both as recursive (should be OK by default).

Run your project (Cmd+R)

(Thanks to @brysgo for writing the instructions)

Android

  • in android/app/build.gradle:
dependencies {
    ...
    compile "com.facebook.react:react-native:+"  // From node_modules
+   compile project(':react-native-device-info')
}
  • in android/settings.gradle:
...
include ':app'
+ include ':react-native-device-info'
+ project(':react-native-device-info').projectDir = new File(rootProject.projectDir, '../node_modules/react-native-device-info/android')

With React Native 0.29+

  • in MainApplication.java:
+ import com.learnium.RNDeviceInfo.RNDeviceInfo;

  public class MainApplication extends Application implements ReactApplication {
    //......

    @Override
    protected List<ReactPackage> getPackages() {
      return Arrays.<ReactPackage>asList(
+         new RNDeviceInfo(),
          new MainReactPackage()
      );
    }

    ......
  }

With older versions of React Native:

  • in MainActivity.java:
+ import com.learnium.RNDeviceInfo.RNDeviceInfo;

  public class MainActivity extends ReactActivity {
    ......

    @Override
    protected List<ReactPackage> getPackages() {
      return Arrays.<ReactPackage>asList(
+       new RNDeviceInfo(),
        new MainReactPackage()
      );
    }
  }

(Thanks to @chirag04 for writing the instructions)

Windows

  • Open the solution in Visual Studio for your Windows apps
  • right click your in the Explorer and click Add > Existing Project...
  • Navigate to ./<app-name>/node_modules/react-native-device-info/windows/RNDeviceInfo and add RNDeviceInfo.csproj
  • this time right click on your React Native Windows app under your solutions directory and click Add > Reference...
  • check the RNDeviceInfo you just added and press ok
  • open up MainPage.cs for your app and edit the file like so:
+ using RNDeviceInfo;
......
            get
            {
                return new List<IReactPackage>
                {
                    new MainReactPackage(),
+                   new RNDeviceInfoPackage(),
                };
            }

(Thanks to @josephan for writing the instructions)

Device Name

If you want to get the device name in Android add this to your AndroidManifest.xml (optional):

...
<uses-permission android:name="android.permission.BLUETOOTH"/>

Release Notes

See CHANGELOG.md

Example

var DeviceInfo = require('react-native-device-info');
// or import DeviceInfo from 'react-native-device-info';
Name Method Return Notes
Device Unique ID getUniqueID() FCDBD8EF-62FC-4ECB-B2F5-92C9E79AC7F9 This is IDFV on iOS so it will change if all apps from the current apps vendor have been previously uninstalled.
Device Manufacturer getManufacturer() Apple
Device Brand getBrand() Apple / htc / Xiaomi
Device Model getModel() iPhone 6
Device ID getDeviceId() iPhone7,2 Or the board on Android e.g. goldfish
System Name getSystemName() iPhone OS
System Version getSystemVersion() 9.0
Bundle ID getBundleId() com.learnium.mobile
Build Number getBuildNumber() 89
App Version getVersion() 1.1.0
App Version (Readable) getReadableVersion() 1.1.0.89
Device Name getDeviceName() Becca's iPhone 6
User Agent getUserAgent() Dalvik/2.1.0 (Linux; U; Android 5.1; Google Nexus 4 - 5.1.0 - API 22 - 768x1280 Build/LMY47D)
Device Locale getDeviceLocale() en-US
Device Country getDeviceCountry() US
Timezone getTimezone() America/Mexico_City
App Instance ID getInstanceID() ANDROID ONLY - see https://developers.google.com/instance-id/
App is running in emulator isEmulator() true if app is running in emulator return true
App is running on a tablet isTablet() true if app is running on a tablet return true

react-native-device-info's People

Contributors

aforty avatar ambroos avatar antoinerousseau avatar banaszeknorbert avatar donald-jackson avatar gantman avatar iotashan avatar jaggs6 avatar jeveloper avatar jihopark avatar joshterrill avatar joshuapinter avatar keeth avatar marekhrabe avatar martnu avatar mchinyakov avatar mehcode avatar mifi avatar nihgwu avatar peteclark3 avatar rmevans9 avatar sh3rawi avatar spukhov avatar st0ffern avatar stevemoser avatar stovmascript avatar testquepp avatar tsemerad avatar xsdlr avatar zxcpoiu avatar

Watchers

 avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.