Show last authors
1 {{box cssClass="floatinginfobox" title="**Page Contents**"}}
2 {{toc/}}
3 {{/box}}
4
5 = 1. Overview =
6
7 The plugin is located at npmjs repositories [[(npm repositories)>>https://www.npmjs.com/package/react-native-mobigate]]
8 This plugin is built for:
9
10 * Mobigate SDK version 1.0.4
11
12 = 2. Adding SDK to the project =
13
14 **First, install library from the repository with**
15
16 {{code language=""}}
17 yarn add react-native-mobigate
18 {{/code}}
19
20 or
21
22 {{code language=""}}
23 npm install react-native-mobigate --save
24 {{/code}}
25
26 **Link newly added plugin**
27
28 * **React Native >= 0.60**
29 Starting from React Native 0.60, [[autolinking>>https://github.com/react-native-community/cli/blob/master/docs/autolinking.md]] makes the installation process simpler
30
31 * **React Native <= 0.59**
32 ** Mostly automatic installation:
33 {{code language=""}}react-native link react-native-mobigate{{/code}}
34 ** Manual installation:{{showhide id="1" showmessage="Manually link the library on Android" hidemessage="Manually link the library on Android"}}* Add to: android/settings.gradle
35
36 {{code language="groovy"}}
37 include ':react-native-mobigate'
38 project(':react-native-mobigate').projectDir = new File(rootProject.projectDir, '../node_modules/react-native-mobigate/android')
39 {{/code}}
40 * Add to: android/app/build.gradle
41
42 {{code language="groovy"}}
43 dependencies {
44 implementation project(':react-native-mobigate')
45 }
46 {{/code}}
47 * Add the MobigatePackage class to your list of exported packages into: android/app/src/main/.../MainApplication.java
48
49 {{code language="java"}}
50 ...
51 import pl.spicymobile.reactmobigate.MobigatePackage;
52
53
54 @Override
55 protected List<ReactPackage> getPackages() {
56 return Arrays.<ReactPackage>asList(
57 new MainReactPackage(),
58 new MobigatePackage()
59 );
60 }
61 {{/code}}{{/showhide}}
62
63 = 3. Api methods =
64
65 To use any method from the plugin add import:
66
67 {{code language="javascript"}}
68 import Mobigate from 'react-native-mobigate'
69 {{/code}}
70
71 == 3.1 SDK initialization ==
72
73 You must initialize the library before running it. Use //init(apiKey, options, onSuccess, onError)// method for that:
74
75 **Mobigate.init(apiKey, options, onSuccess, onError)**
76
77 (% class="table-bordered table-hover" style="border-color:powderblue" %)
78 |=(% style="background-color:powderblue" %)Parameter|=(% style="background-color:powderblue" %)Type|=(% style="background-color:powderblue" %)Description
79 |apiKey|String|Api key provided by your business partner
80 |options|Json Object|SDK configuration
81 |onSuccess|Function|returns callback object
82 |onError|Function|returns callback object
83
84 {{showhide id="2" showmessage="Options" hidemessage="Options"}}
85 (% class="table-bordered table-hover" style="border-color:powderblue" %)
86 |=(% style="background-color:powderblue" %)Name|=(% style="background-color:powderblue" %)Type|=(% style="background-color:powderblue" %)Default|=(% style="background-color:powderblue" %)Description
87 | appIdentifier|String| | Application identifier
88 |appInstallationSource |String| | App installation source e.g., google-play, organic.
89 |email |String | | Set's user email.
90 |customUserId |String | | You may use your custom userID for marking data. By default we are using device ID and emails for matching. Set it before starting the service using MobigateSDk.Builder method.
91 | enableUserFields|Json Array | | Enable custom fields in user data. By default MobienceSDK is gathering all identifiers, which it can read. You can choose one of these field: ["email", "imei", "imsi", "msisdn", "mac", "serial"] DODAĆ LINKA DO CONSTANTS.
92 | dataGatherPolicy| Json Object| | Enable custom data gater policy. By default MobienceSDK gather all data it can read and hide notification icon. Check below DataGatherPolicy options for more details.
93 | enableIdProfiles|Boolean |false | turns on / off the IDs profiles system.
94 {{/showhide}}
95
96 {{showhide id="3" showmessage="DataGatherPolicy options" hidemessage="DataGatherPolicy options"}}
97 (% class="table-bordered table-hover" style="border-color:powderblue" %)
98 |=(% style="background-color:powderblue" %)Name|=(% style="background-color:powderblue" %)Type|=(% style="background-color:powderblue" %)Default|=(% style="background-color:powderblue" %)Description
99 | monitorState|String| | Possible monitor states: DODAĆ LINKA DO CONSTANTS. More info about gathering data [[here>>https://wiki.spicymobile.pl/wiki/mobigatesdk/view/Main/mobigatesdkintegrationforandroiddevelopers/#H5.8Datagatherpolicy]]
100 |notificationText|String| | if state = Mobigate.DATA_GATHER_POLICY_DEFAULT you can pass custom foreground service notification text
101 {{/showhide}}
102
103
104 When the library is already initialized run it. Use //startSDK(onSuccess, onError)// method for that:
105
106 **Mobigate.startSDK(onSuccess, onError)**
107
108 (% class="table-bordered table-hover" style="border-color:powderblue" %)
109 |=(% style="background-color:powderblue" %)Parameter|=(% style="background-color:powderblue" %)Type|=(% style="background-color:powderblue" %)Description
110 |onSuccess|Function|returns callback object
111 |onError|Function|returns callback object
112
113 {{showhide id="3" showmessage="Example" hidemessage="Example"}}
114 {{code language="javascript"}}
115 initLibrary = () => {
116 if (Platform.OS === 'android') {
117 Mobigate.init("V0K6jhiIfem6CRWHYZ59Nmj3oFBBKbJsnSsWfR2JNq7ktblOUXwbJoBQTpWnw2uSwW76gpiu2kun50jweTY69B",
118 {
119 /*custom options, check docs for more details
120 appIdentifier: 'customUserAppIdentifier',
121 appInstallationSource: "customAppInstallationSourcexyz",
122 email: 'testemail@gmail.com',
123 userAgent: 'customUserAgent',
124 customUserId: 'customUserId',*/
125 }, (success) => {
126 /* You can configure custom collectors after init
127 Mobigate.disableAllDataCollector()
128 Mobigate.configureDataCollectors(true, [Mobigate.DATA_COLLECTOR_APPS_LIST,
129 Mobigate.DATA_COLLECTOR_BATTERY,
130 Mobigate.DATA_COLLECTOR_PHONE_INFO])*/
131
132 Mobigate.startSDK((result) => {
133 this.setState({
134 status: 'started',
135 });
136
137 }, (errorResult) => {
138 this.setState({
139 status: errorResult,
140 });
141 })
142 }, (initError) => {
143 this.setState({
144 status: initError,
145 });
146 })
147 }else{
148 this.setState({
149 status: 'Mobigate SDK supports only Android'
150 })
151 }
152 }
153 {{/code}}
154 {{/showhide}}
155
156 == 3.2 Tracking in app events ==
157
158 In-App Events provide insight on what is happening in your app. It is recommended to take the time and define the events you would like to measure.
159
160 An event consists of two fields that you (% style="display:none" %) (%%)can use to describe a user's interaction with your app content:
161
162 (% class="table-bordered table-hover" %)
163 |(% style="background-color:powderblue; width:200px" %)**Field name**|(% style="background-color:powderblue; width:200px" %)**Type**|(% style="background-color:powderblue; width:200px" %)**Required**|(% style="background-color:powderblue; width:200px" %)**Description**
164 |(% style="width:200px" %)Category|(% style="width:200px" %)String/EventCategory|(% style="width:200px" %)yes|(% style="width:200px" %)Event category
165 |(% style="width:200px" %)Parameter|(% style="width:200px" %)String/EventParameter|(% style="width:200px" %)no|(% style="width:200px" %)Event parameter. 
166 There can be more than one
167
168 === 3.2.1 Overview ===
169
170 === 3.2.2 Implementation ===
171
172 === 3.2.3 Event categories ===
173
174 === 3.2.4 Event parameters ===
175
176 == 3.3 Remaining methods ==
177
178
179
180
181
182 (% class="table-bordered table-hover" style="border-color:powderblue" %)
183 |=(% style="background-color:powderblue" %)Name|=(% style="background-color:powderblue" %)Type|=(% style="background-color:powderblue" %)Default|=(% style="background-color:powderblue" %)Description
184 | | | |
185
186 = 4. Constants =
187
188 = 5. Sample app =
Spicy Mobile
spicymobile.pl