-
Notifications
You must be signed in to change notification settings - Fork 131
/
index.js
112 lines (90 loc) · 2.45 KB
/
index.js
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
/*
* Version for React Native
* © 2020 YANDEX
* You may not use this file except in compliance with the License.
* You may obtain a copy of the License at
* https://yandex.com/legal/appmetrica_sdk_agreement/
*/
import {NativeModules} from 'react-native';
const {AppMetrica} = NativeModules;
type AppMetricaConfig = {
apiKey: string,
appVersion?: string,
crashReporting?: boolean,
firstActivationAsUpdate?: boolean,
location: Location,
locationTracking?: boolean,
logs?: boolean,
sessionTimeout?: number,
statisticsSending?: boolean,
preloadInfo?: PreloadInfo,
// Only Android
installedAppCollecting?: boolean,
maxReportsInDatabaseCount?: number,
nativeCrashReporting?: boolean,
// Only iOS
activationAsSessionStart?: boolean,
sessionsAutoTracking?: boolean,
}
type PreloadInfo = {
trackingId: string,
additionalInfo?: Object,
}
type Location = {
latitude: number,
longitude: number,
altitude?: number,
accuracy?: number,
course?: number,
speed?: number,
timestamp?: number
}
type AppMetricaDeviceIdReason = 'UNKNOWN' | 'NETWORK' | 'INVALID_RESPONSE';
export default {
activate(config: AppMetricaConfig) {
AppMetrica.activate(config);
},
// Android
async getLibraryApiLevel(): number {
return AppMetrica.getLibraryApiLevel();
},
async getLibraryVersion(): string {
return AppMetrica.getLibraryVersion();
},
pauseSession() {
AppMetrica.pauseSession();
},
reportAppOpen(deeplink: ?string = null) {
AppMetrica.reportAppOpen(deeplink);
},
reportError(error: string, reason: Object) {
AppMetrica.reportError(error);
},
reportEvent(eventName: string, attributes: ?Object = null) {
AppMetrica.reportEvent(eventName, attributes);
},
reportReferralUrl(referralUrl: string) {
AppMetrica.reportReferralUrl(referralUrl);
},
requestAppMetricaDeviceID(listener: (deviceId?: String, reason?: AppMetricaDeviceIdReason) => void) {
AppMetrica.requestAppMetricaDeviceID(listener);
},
resumeSession() {
AppMetrica.resumeSession();
},
sendEventsBuffer() {
AppMetrica.sendEventsBuffer();
},
setLocation(location: ?Location) {
AppMetrica.setLocation(location);
},
setLocationTracking(enabled: boolean) {
AppMetrica.setLocationTracking(enabled);
},
setStatisticsSending(enabled: boolean) {
AppMetrica.setStatisticsSending(enabled);
},
setUserProfileID(userProfileID?: string) {
AppMetrica.setUserProfileID(userProfileID);
},
};