react-native-flurry-analytics
v3.0.3
Published
React Native wrapper for Flurry Analytics
Downloads
16
Maintainers
Readme
React Native Flurry Analytics
React Native wrapper for flurry analytics.
Table of contents
Installation
Common
- Install package via npm:
npm install react-native-flurry-analytics --save
- Link native part
react-native link react-native-flurry-analytics
- Inside your code include JS part by adding
import FlurryAnalytics from 'react-native-flurry-analytics';
iOS
sudo gem install cocoapods
cd ios
pod init
open Podfile
Add this line
pod 'Flurry-iOS-SDK/FlurrySDK'
Then run
pod install
Android
Add these lines in AndroidManifest.xml
<!-- Required permissions - Internet access -->
<uses-permission android:name="android.permission.INTERNET" />
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE"/>
<!-- Recommended permission - External memory pre-caching -->
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE"/>
Configure Proguard (optional)
Add following to android/app/proguard-rules.pro
# Required to preserve the Flurry SDK
-keep class com.flurry.** { *; }
-dontwarn com.flurry.**
-keepattributes *Annotation*,EnclosingMethod,Signature
-keepclasseswithmembers class * {
public (android.content.Context, android.util.AttributeSet, int);
}
# Google Play Services library
-keep class * extends java.util.ListResourceBundle {
protected Object[ ][ ] getContents();
}
-keep public class com.google.android.gms.common.internal.safeparcel.SafeParcelable {
public static final *** NULL;
}
-keepnames @com.google.android.gms.common.annotation.KeepName class *
-keepclassmembernames class * {
@com.google.android.gms.common.annotation.KeepName *;
}
-keepnames class * implements android.os.Parcelable {
public static final ** CREATOR;
}
Usage
startSession(string apiKey)
FlurryAnalytics.startSession('YOUR_API_KEY');
setAppVersion(string version)
!!! method must be called prior to invoking startSession
FlurryAnalytics.setAppVersion('1.0.0');
setDebugLogEnabled(bool enabled)
!!! method must be called prior to invoking startSession
FlurryAnalytics.setDebugLogEnabled(false)
setSessionContinueSeconds(int seconds)
!!! method must be called prior to invoking startSession
FlurryAnalytics.setSessionContinueSeconds(10);
setCrashReportingEnabled(bool enabled)
!!! method must be called prior to invoking startSession
FlurryAnalytics.setCrashReportingEnabled(true);
logEvent(string eventName, object params, bool timed)
FlurryAnalytics.logEvent('eventName');
FlurryAnalytics.logEvent('eventName', true);
FlurryAnalytics.logEvent('eventName', {param: 'true'});
FlurryAnalytics.logEvent('eventName', {param: 'true'}, true);
endTimedEvent(string eventName, object params)
FlurryAnalytics.endTimedEvent('eventName');
FlurryAnalytics.endTimedEvent('eventName', {param: 'true'});
logPageView()
FlurryAnalytics.logPageView();
setUserId(string userId)
FlurryAnalytics.setUserId('userId');
setUserAge(int age)
FlurryAnalytics.setUserAge(28);
setUserGender(string gender)
FlurryAnalytics.setUserGender('m');
// or
FlurryAnalytics.setUserGender('f');
For more information read official docs iOS Android
Contributing
Just submit a pull request!
Copyright and license
Code and documentation copyright 2016 Dmitriy Kolesnikov. Code released under the MIT license.