Platforms:
- iOS
- Android (comming soon in few days)
yarn add https://github.com/yarikpwnzer/react-native-survey-monkeynpm install https://github.com/yarikpwnzer/react-native-survey-monkey --save- Add this package to your Podfile
pod 'react-native-survey-monkey', path: '../node_modules/react-native-survey-monkey'Note that this will automatically pull in the appropriate version of the underlying Survey Monkey pod.
- Install Pods with
pod install- Add the SurveyMonkey dependency to your Podfile
pod 'surveymonkey-ios-sdk', '~> 2.0'- Install Pods with
pod install- Add the XCode project to your own XCode project's
Librariesdirectory from
node_modules/react-native-survey-monkey/ios/RNSurveyMonkey.xcodeproj
-
Add
libRNSurveyMonkey.ato your XCode project target'sLinked Binary With Libraries -
Update
Build Settings
Find Search Paths and add $(SRCROOT)/../node_modules/react-native-survey-monkey/ios with recursive to Framework Search Paths and Library Search Paths
Not ready in this version of library, will be ready in couple days.
We have three important components to understand:
import SurveyMonkey from 'react-native-survey-monkey';Example:
import React, { PureComponent, createRef } from 'react';
import SurveyMonkey from 'react-native-survey-monkey';
import {
View,
Text,
TouchableOpacity
} from 'react-native';
export default class Example extends PureComponent {
constructor(props) {
super(props);
this.onTouch = this.onTouch.bind(this);
this.surveyMonkeyRef = createRef();
}
onTouch() {
this.surveyRef.current.showSurveyMonkey('some hash');
}
render() {
return (
<View style={styles.container}>
<SurveyMonkey ref={ this.surveyMonkeyRef } />
<TouchableOpacity
style={ styles.button }
onPress={ this.onTouch }
>
<Text styles={ styles.buttonText }>
Show survey
</Text>
</TouchableOpacity>
</View>
);
}
}
AppRegistry.registerComponent('Example', () => Example);Getting respondent data:
<SurveyMonkey
ref={ this.ref }
onRespondentDidEndSurvey={ (data) => {
console.log('Respondent', data.respondent);
console.log('Error', data.error);
} }
/>'Cancel' button tint color:
<SurveyMonkey
ref={ this.ref }
cancelButtonTintColor="#000000"
/>You can add custom variables:
onTouch() {
this.surveyRef.current.showSurveyMonkey('some hash', { var1: 'var1', var2: 'var2', ... });
}Schedule Intercept (ios: scheduleInterceptFromViewControllerWithTitle):
onTouch() {
this.surveyRef.current.showSurveyMonkey('some hash', null, 'Title');
}Schedule Intercept with Params (ios: scheduleInterceptFromViewControllerWithParams):
onTouch() {
this.surveyRef.current.showSurveyMonkey('some hash', null, null, {
title: 'Title',
body: 'Body',
positiveActionTitle: 'positive',
cancelTitle: 'cancel',
afterInstallInterval: 10,
afterAcceptInterval: 10,
afterDeclineInterval: 10
});
}- Yaroslav Fuchko (iOS) yarikpwnzer1@gmail.com