add reportUserProfile
This commit is contained in:
parent
f606229340
commit
c54ba7d4d2
4
AUTHORS
4
AUTHORS
@ -1,3 +1,3 @@
|
|||||||
The following authors have created the source code of "react-native-appmetrica" published and distributed by YANDEX LLC as the owner:
|
The following authors have created the source code of "react-native-appmetrica-next" published and distributed by YANDEX LLC as the owner:
|
||||||
|
|
||||||
Aliaksei Nestsiarovich <alex98@yandex-team.ru>
|
AndreyBondarenko <mail@andreybondarenko.info>
|
@ -50,6 +50,11 @@ public class AppMetricaModule extends ReactContextBaseJavaModule {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ReactMethod
|
||||||
|
public void reportUserProfile(ReadableMap configAttributes) {
|
||||||
|
YandexMetrica.reportUserProfile(Utils.toYandexProfileConfig(configAttributes));
|
||||||
|
}
|
||||||
|
|
||||||
@ReactMethod
|
@ReactMethod
|
||||||
public void getLibraryApiLevel(Promise promise) {
|
public void getLibraryApiLevel(Promise promise) {
|
||||||
promise.resolve(YandexMetrica.getLibraryApiLevel());
|
promise.resolve(YandexMetrica.getLibraryApiLevel());
|
||||||
|
@ -9,16 +9,40 @@
|
|||||||
package com.yandex.metrica.plugin.reactnative;
|
package com.yandex.metrica.plugin.reactnative;
|
||||||
|
|
||||||
import android.location.Location;
|
import android.location.Location;
|
||||||
|
import android.util.Log;
|
||||||
|
|
||||||
import com.facebook.react.bridge.ReadableMap;
|
import com.facebook.react.bridge.ReadableMap;
|
||||||
import com.yandex.metrica.PreloadInfo;
|
import com.yandex.metrica.PreloadInfo;
|
||||||
import com.yandex.metrica.YandexMetricaConfig;
|
import com.yandex.metrica.YandexMetricaConfig;
|
||||||
|
import com.yandex.metrica.profile.GenderAttribute;
|
||||||
|
import com.yandex.metrica.profile.UserProfile;
|
||||||
|
import com.yandex.metrica.profile.Attribute;
|
||||||
|
|
||||||
import java.util.Iterator;
|
import java.util.Iterator;
|
||||||
import java.util.Map;
|
import java.util.Map;
|
||||||
|
|
||||||
abstract class Utils {
|
abstract class Utils {
|
||||||
|
|
||||||
|
static UserProfile toYandexProfileConfig(ReadableMap configMap) {
|
||||||
|
UserProfile.Builder userProfile = UserProfile.newBuilder();
|
||||||
|
if (configMap.hasKey("name")) {
|
||||||
|
userProfile.apply(Attribute.name().withValue(configMap.getString("name")));
|
||||||
|
}
|
||||||
|
if (configMap.hasKey("floor") && configMap.getString("floor") == "male") {
|
||||||
|
userProfile.apply(Attribute.gender().withValue(GenderAttribute.Gender.MALE));
|
||||||
|
} else if(configMap.hasKey("floor") && configMap.getString("floor") == "female") {
|
||||||
|
|
||||||
|
userProfile.apply(Attribute.gender().withValue(GenderAttribute.Gender.FEMALE));
|
||||||
|
}
|
||||||
|
if (configMap.hasKey("age")) {
|
||||||
|
userProfile.apply(Attribute.birthDate().withAge(configMap.getInt("age")));
|
||||||
|
}
|
||||||
|
if (configMap.hasKey("isNotification")) {
|
||||||
|
userProfile.apply(Attribute.notificationsEnabled().withValue(configMap.getBoolean("isNotification")));
|
||||||
|
}
|
||||||
|
return userProfile.build();
|
||||||
|
}
|
||||||
|
|
||||||
static YandexMetricaConfig toYandexMetricaConfig(ReadableMap configMap) {
|
static YandexMetricaConfig toYandexMetricaConfig(ReadableMap configMap) {
|
||||||
YandexMetricaConfig.Builder builder = YandexMetricaConfig.newConfigBuilder(configMap.getString("apiKey"));
|
YandexMetricaConfig.Builder builder = YandexMetricaConfig.newConfigBuilder(configMap.getString("apiKey"));
|
||||||
|
|
||||||
|
13
index.js
13
index.js
@ -30,6 +30,15 @@ type AppMetricaConfig = {
|
|||||||
sessionsAutoTracking?: boolean,
|
sessionsAutoTracking?: boolean,
|
||||||
}
|
}
|
||||||
|
|
||||||
|
type FloorType = 'male' | 'female';
|
||||||
|
|
||||||
|
type UserProfileConfig = {
|
||||||
|
name: string,
|
||||||
|
floor?: FloorType,
|
||||||
|
age: number,
|
||||||
|
isNotification: boolean,
|
||||||
|
}
|
||||||
|
|
||||||
type PreloadInfo = {
|
type PreloadInfo = {
|
||||||
trackingId: string,
|
trackingId: string,
|
||||||
additionalInfo?: Object,
|
additionalInfo?: Object,
|
||||||
@ -53,6 +62,10 @@ export default {
|
|||||||
AppMetrica.activate(config);
|
AppMetrica.activate(config);
|
||||||
},
|
},
|
||||||
|
|
||||||
|
reportUserProfile(config: UserProfileConfig){
|
||||||
|
AppMetrica.reportUserProfile(config);
|
||||||
|
},
|
||||||
|
|
||||||
// Android
|
// Android
|
||||||
async getLibraryApiLevel(): number {
|
async getLibraryApiLevel(): number {
|
||||||
return AppMetrica.getLibraryApiLevel();
|
return AppMetrica.getLibraryApiLevel();
|
||||||
|
@ -1,7 +1,7 @@
|
|||||||
{
|
{
|
||||||
"name": "react-native-appmetrica",
|
"name": "react-native-appmetrica-next",
|
||||||
"title": "Yandex AppMetrica React Native Plugin",
|
"title": "Yandex AppMetrica React Native Plugin",
|
||||||
"version": "2.0.0",
|
"version": "1.0.2",
|
||||||
"description": "React Native plugin for AppMetrica analytics tool",
|
"description": "React Native plugin for AppMetrica analytics tool",
|
||||||
"main": "index.js",
|
"main": "index.js",
|
||||||
"scripts": {
|
"scripts": {
|
||||||
@ -9,7 +9,7 @@
|
|||||||
},
|
},
|
||||||
"repository": {
|
"repository": {
|
||||||
"type": "git",
|
"type": "git",
|
||||||
"url": "git+https://github.com/yandexmobile/react-native-appmetrica.git"
|
"url": "git+https://github.com/aspidvip/react-native-appmetrica-next.git"
|
||||||
},
|
},
|
||||||
"keywords": [
|
"keywords": [
|
||||||
"yandex",
|
"yandex",
|
||||||
@ -23,7 +23,7 @@
|
|||||||
"react-native-android"
|
"react-native-android"
|
||||||
],
|
],
|
||||||
"author": {
|
"author": {
|
||||||
"name": "YANDEX LLC"
|
"name": "YANDEX LLC && Andrey Bondarenko"
|
||||||
},
|
},
|
||||||
"license": "MIT",
|
"license": "MIT",
|
||||||
"homepage": "https://appmetrica.yandex.com/docs",
|
"homepage": "https://appmetrica.yandex.com/docs",
|
||||||
|
@ -3,7 +3,7 @@ require "json"
|
|||||||
package = JSON.parse(File.read(File.join(__dir__, "package.json")))
|
package = JSON.parse(File.read(File.join(__dir__, "package.json")))
|
||||||
|
|
||||||
Pod::Spec.new do |s|
|
Pod::Spec.new do |s|
|
||||||
s.name = "react-native-appmetrica-next-next"
|
s.name = "react-native-appmetrica-next"
|
||||||
s.version = package["version"]
|
s.version = package["version"]
|
||||||
s.summary = package["description"]
|
s.summary = package["description"]
|
||||||
s.homepage = package["homepage"]
|
s.homepage = package["homepage"]
|
||||||
|
Loading…
Reference in New Issue
Block a user