Platforms:
yarn add react-native-survey-monkey
npm install react-native-survey-monkey --save
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.
pod install
pod 'surveymonkey-ios-sdk', '~> 2.0'
pod install
Libraries
directory fromnode_modules/react-native-survey-monkey/ios/RNSurveyMonkey.xcodeproj
Add libRNSurveyMonkey.a
to your XCode project target's Linked 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
The Android version doesn't require additional changes, please note that that minSdk for this library is Api 21 (Android 5.x).
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.surveyMonkeyRef.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 (iOS only):
<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
});
}