Coder Social home page Coder Social logo

helpshift-react-native's Introduction

helpshift-react-native

Getting started

$ yarn add helpshift-react-native

Mostly automatic installation

$ react-native link helpshift-react-native

Manual installation

iOS

  1. In XCode, in the project navigator, right click LibrariesAdd Files to [your project's name]
  2. Go to node_moduleshelpshift-react-native and add RNHelpshift.xcodeproj
  3. In XCode, in the project navigator, select your project. Add libRNHelpshift.a to your project's Build PhasesLink Binary With Libraries
  4. Run your project (Cmd+R)<

Android

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

Helpshift Component

Initialize

import { 
  Platform,
  Dimensions,
  View
} from 'react-native';
import Helpshift from 'helpshift-react-native';

const user = {
  identifier: 'YOUR_UNIQUE_ID', // required if no email
  email: '[email protected]', // required if no identifier
  name: 'Jane Doe', // optional
  authToken: 'XXXXXXXX=' // required if User Identity Verification is enabled
}

const cifs = {
// 'key': ['type', 'value']
   'number_of_rides': ['n', '12'],
   'street': ['sl', '343 sansome'],
   'new_customer': ['b', 'true']
}

// Where data types are mapped like so:
// singleline => sl
// multiline => ml
// number => n
// date => dt
// dropdown => dd
// checkbox => b

const config = {
  apiKey: 'HELPSHIFT_API_KEY',
  domain: 'HELPSHIFT_DOMAIN',
  appId: Platform.select({ ios: 'HELPSHIFT_IOS_APP_ID', android: 'HELPSHIFT_ANDROID_APP_ID' }),
  width: Dimensions.get('window').width,//iOS only
  height: Dimensions.get('window').height - 300, //iOS only
  user: user,
  cifs: cifs
}

render() {
  return (
    <View>
      <Helpshift config={config} style={{ flex: 1, height: 500, width: 300}} />
    </View 
  )
}

API Usage

Initialize

import { Platform } from 'react-native';
import Helpshift from 'helpshift-react-native';

const apiKey = 'HELPSHIFT_API_KEY';
const domain = 'HELPSHIFT_DOMAIN';
const iosAppId = 'HELPSHIFT_IOS_APP_ID';
const androidAppId = 'HELPSHIFT_ANDROID_APP_ID';

const appId = Platform.select({ ios: iosAppId, android: androidAppId })
Helpshift.init(apiKey, domain, appId);

Login

const user = {
  identifier: 'YOUR_UNIQUE_ID', // required if no email
  email: '[email protected]', // required if no identifier
  name: 'Jane Doe', // optional
  authToken: 'XXXXXXXX=' // required if User Identity Verification is enabled
}
Helpshift.login(user)

Logout

Helpshift.logout()

Show Conversation

Helpshift.showConversation()

Show FAQs

Helpshift.showFAQs()

With Custom Issue Fields (CIFs) (Documentation)

const cifs = {
// 'key': ['type', 'value']
   'number_of_rides': ['n', '12'],
   'street': ['sl', '343 sansome'],
   'new_customer': ['b', 'true']
}

// Where data types are mapped like so:
// singleline => sl
// multiline => ml
// number => n
// date => dt
// dropdown => dd
// checkbox => b

Helpshift.showConversationWithCIFs(cifs)
// OR
Helpshift.showFAQsWithCIFs(cifs)

Get Unread Message Count

Helpshift.requestUnreadMessagesCount(); // returns Promise

// example usage
async _getUnreadMessagesCount(){
  let count = await Helpshift.requestUnreadMessagesCount();
  this.setState({ unreadMessages: count });
}

helpshift-react-native's People

Contributors

readehelpshift avatar brentvatne avatar derekstavis avatar pmbrex avatar

Watchers

James Cloos avatar  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.