Security News
Bun 1.2 Released with 90% Node.js Compatibility and Built-in S3 Object Support
Bun 1.2 enhances its JavaScript runtime with 90% Node.js compatibility, built-in S3 and Postgres support, HTML Imports, and faster, cloud-first performance.
react-native-amplitude-analytics
Advanced tools
React Native iOS and Android wrapper for Amplitude
react-native
version >0.40
npm i react-native-amplitude-analytics --save
For react-native > 0.60 the installation should be automated, for older versions expand and read the Manual installation section below.
react-native link react-native-amplitude-analytics
After you do that make sure that:node_modules/react-native-amplitude-analytics/ios
is found within your Xcode Project as a subproject (if it's not add it manually with drag and drop).add the following line to your "Podfile": pod 'Amplitude-iOS', '~> 4.3.1'
and run pod install
or
download the Amplitude-iOS sdk from here and add it to your project manually. Make sure the Amplitude-iOS
directory of the SDK is included in the root of your app's ios folder.
Cmd+R
)android/app/src/main/java/[...]/MainApplication.java
Add
import com.sudoplz.reactnativeamplitudeanalytics.RNAmplitudeSDKPackage;
to the imports at the top of the file.
Add
new RNAmplitudeSDKPackage(MainApplication.this),
to the list returned by the getPackages()
method
Append the following lines to android/settings.gradle
:
include ':react-native-amplitude-analytics'
project(':react-native-amplitude-analytics').projectDir = new File(rootProject.projectDir, '../node_modules/react-native-amplitude-analytics/android')
Insert the following lines inside the dependencies block in android/app/build.gradle
:
compile 'com.amplitude:android-sdk:2.19.1' // native sdk of amplitude
compile project(':react-native-amplitude-analytics') // our react-native module
Add permissions. If you haven't already, add the INTERNET permission to your manifest file:
<uses-permission android:name="android.permission.INTERNET" />
import RNAmplitude from 'react-native-amplitude-analytics';
class testApp extends Component {
constructor() {
super();
const amplitude = new RNAmplitude('Your Amplitude key');
// set event upload threshold
amplitude.setEventUploadThreshold(30);
// log an event
amplitude.logEvent(eventName);
// log an event with data
amplitude.logEvent(eventName, { foo: bar });
// log an event with a custom timestamp (data is optional)
// timestamp should be the number of milliseconds since Unix epoch
amplitude.logEventWithTimestamp(eventName, timestamp, { foo: bar });
// set the user id
amplitude.setUserId('1D32FS45');
// get user id that you set with `setUserId` method (null by default)
amplitude.getUserId();
// set user props
amplitude.setUserProperties({ hairColor: 'brown' });
// sets whether or not to opt a user out logging
amplitude.setOptOut(true);
// log revenue
amplitude.logRevenue(productIdentifier, quantity, amount)
/**
* RevenueProperties {
* productId?: string;
* quantity?: number; //default = 1
* price: number;
* revenueType?: string;
* receipt?: string;
* receiptSignature?: string;
* eventProperties?: {[key: string]: any},
* }
*/
amplitude.logRevenueV2(revenueProperties)
// add to user property
amplitude.addToUserProperty(property, amount)
// append to user property
amplitude.appendToUserProperty(property, 'stringValue')
// prepend to user property
amplitude.prependToUserProperty(property, 'stringValue')
// set user property once
amplitude.setUserPropertyOnce(property, 'stringValue')
// get device id as logged in Amplitude
amplitude.getDeviceId().then(deviceId => ...)
// get the current session ID as logged in Amplitude
amplitude.getSessionId().then(sessionId => ...)
}
...
}
there's also an example project here.
FAQs
React Native iOS and Android wrapper for Amplitude
We found that react-native-amplitude-analytics demonstrated a not healthy version release cadence and project activity because the last version was released a year ago. It has 1 open source maintainer collaborating on the project.
Did you know?
Socket for GitHub automatically highlights issues in each pull request and monitors the health of all your open source dependencies. Discover the contents of your packages and block harmful activity before you install or update your dependencies.
Security News
Bun 1.2 enhances its JavaScript runtime with 90% Node.js compatibility, built-in S3 and Postgres support, HTML Imports, and faster, cloud-first performance.
Security News
Biden's executive order pushes for AI-driven cybersecurity, software supply chain transparency, and stronger protections for federal and open source systems.
Security News
Fluent Assertions is facing backlash after dropping the Apache license for a commercial model, leaving users blindsided and questioning contributor rights.