Coder Social home page Coder Social logo

rnkit-bqs-device-finger-printing's Introduction

npm react-native MIT bitHound Score Downloads

BqsDeviceFingerPrinting for react-native for React Native.

Support me with a Follow

Getting Started

First, cd to your RN project directory, and install RNMK through rnpm . If you don't have rnpm, you can install RNMK from npm with the command npm i -S rnkit-bqs-device-finger-printing and link it manually (see below).

Android

  • React Native < 0.29 (Using rnpm)

    rnpm install rnkit-bqs-device-finger-printing

  • React Native >= 0.29

    $npm install -S rnkit-bqs-device-finger-printing

    $react-native link rnkit-bqs-device-finger-printing

Manually

  1. JDK 7+ is required
  2. Add the following snippet to your android/settings.gradle:
include ':rnkit-bqs-device-finger-printing'
project(':rnkit-bqs-device-finger-printing').projectDir = new File(rootProject.projectDir, '../node_modules/rnkit-bqs-device-finger-printing/android/app')
  1. Declare the dependency in your android/app/build.gradle
dependencies {
    ...
    compile project(':rnkit-bqs-device-finger-printing')
}
  1. Import import io.rnkit.bqs.devicefingerprinting; and register it in your MainActivity (or equivalent, RN >= 0.32 MainApplication.java):
@Override
protected List<ReactPackage> getPackages() {
    return Arrays.asList(
            new MainReactPackage(),
            new BqsDeviceFingerPrintingPackage()
    );
}

Finally, you're good to go, feel free to require rnkit-bqs-device-finger-printing in your JS files.

Have fun! 🤘

Basic Usage

Import library

import BqsDeviceFingerPrinting from 'rnkit-bqs-device-finger-printing'

Authentication

iOS

Privacy - Location When In Use Usage Description: 我们需要通过您的地理位置信息获取您周边的相关数据
Privacy - Contacts Usage Description: 是否允许此App访问你的通讯录?

Android

<!--必要权限-->
<uses-permission android:name="android.permission.INTERNET"/>
<uses-permission android:name="android.permission.READ_PHONE_STATE" />
<uses-permission android:name="android.permission.ACCESS_WIFI_STATE" />
<uses-permission android:name="android.permission.BLUETOOTH" />
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE"/>
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE"/>
<!--采集传感器信息必要权限-->
<uses-feature android:required="true" android:name="android.hardware.sensor.accelerometer"/>
<!--可选权限 如果需要获取 GPS 定位,需要添加以下两个可选权限-->
<uses-permission android:name="android.permission.ACCESS_COARSE_LOCATION" />
<uses-permission android:name="android.permission.ACCESS_FINE_LOCATION"/>
<!--获取通讯录-->
<uses-permission android:name="android.permission.READ_CONTACTS" />
<!--获取通话记录-->
<uses-permission android:name="android.permission.READ_CALL_LOG"/>

Api

/**
 * 初始化方法
 * @param {Object} options 参数
 * ------- options ---------
 * @param {String} [required] partnerId 合作方编码
 * @param {Boolen} isGatherGps 是否采集gps,默认YES:采集 NO:不采集
 * @param {Boolen} isGatherContacts 是否采集通讯录,默认NO:不采集, YES:采集
 * @param {Boolen} isTestingEnv 是否对接白骑士测试环境,默认NO:生产环境, YES:测试环境
 * @param {Boolen} isGatherSensorInfo 是否采集传感器信息,默认YES:采集 NO:不采集
 */
try {
  const token = await BqsDeviceFingerPrinting.init({
    partnerId: 'partnerId',
    isGatherGps: true,
    isGatherContacts: false,
    isTestingEnv: true,
    isGatherSensorInfo: true,
  });
  console.log(`deviceToken: ${token}`);
} catch (err) {
  console.log(err);
}

/**
 * 获取 tokenKey
 * @return {String} token
 */
[async] getTokenKey();

/**
 * 提交通讯录
 * @return {String} token
 */
try {
  const token = await commitContacts();
  console.log(`deviceToken: ${token}, 提交通讯录成功!`)
} catch (err) {
  console.log(err)
}

/**
 * 提交定位 (可能不准)
 * @return {String} token
 */
try {
  const token = await commitLocaiton();
  console.log(`deviceToken: ${token}, 提交定位成功!`)
} catch (err) {
  console.log(err)
}

/**
 * 设置并提交定位
 * @param {double} [required] longitude 经度
 * @param {double} [required] latitude 纬度
 * @return {String} token
 */
try {
  const token = await commitLocaitonWithLongitude(longitude, latitude);
  console.log(`deviceToken: ${token}, 设置并提交定位成功!`)
} catch (err) {
  console.log(err)
}

Contribution

Questions

Feel free to contact me or create an issue

made with ♥

rnkit-bqs-device-finger-printing's People

Contributors

simman avatar

Watchers

 avatar  avatar  avatar

Forkers

tnrn

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.