Changes for page Flutter integration
Last modified by Developer on 2020/03/19 15:21
Summary
-
Page properties (1 modified, 0 added, 0 removed)
Details
- Page properties
-
- Content
-
... ... @@ -7,89 +7,47 @@ 7 7 The plugin is located at pub repositories [[(pub repositories)>>https://pub.dev/packages/flutter_mobigate]] 8 8 This plugin is built for: 9 9 10 -* Mobigate SDK version 1.0. 210 +* Mobigate SDK version 1.0.6 11 11 12 12 = 2. Adding SDK to the project = 13 13 14 -**First, i nstalllibraryfromtherepositorywith**14 +**First, add this to your package's pubspec.yaml file** 15 15 16 16 {{code language=""}} 17 -yarn add react-native-mobigate 17 +dependencies: 18 + flutter_mobigate: ^1.0.2 18 18 {{/code}} 19 19 20 - or21 +**Install packages from the command line** 21 21 22 22 {{code language=""}} 23 - npminstall react-native-mobigate--save24 +$ flutter pub get 24 24 {{/code}} 25 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 63 = 3. Api methods = 64 64 65 65 To use any method from the plugin add import: 66 66 67 -{{code language=" javascript"}}68 -import Mobigatefrom 'react-native-mobigate'31 +{{code language="dart"}} 32 +import 'package:flutter_mobigate/flutter_mobigate.dart'; 69 69 {{/code}} 70 70 71 -== 3.1 SDK initialization == 35 +== 3.1 MobigateSDK class initialization == 72 72 73 - You must initializethelibrarybefore running it.Use//init(apiKey, options,onSuccess,onError)//method for that:37 +Initialize class with //MobigateSDK(MobigateOptions options)// 74 74 75 - **Mobigate.init(apiKey,options, onSuccess,onError)**39 +//MobigateOptions(apiKey,{appIdentifier, appInstallationSource,email,cusUserId,enableUserFields,dataGatherPolicy,notificationText,enableIdProfiles})// 76 76 41 +{{showhide id="2" showmessage="MobigateOptions" hidemessage="MobigateOptions"}} 77 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 86 |=(% style="background-color:powderblue" %)Name|=(% style="background-color:powderblue" %)Type|=(% style="background-color:powderblue" %)Default|=(% style="background-color:powderblue" %)Description 87 87 | appIdentifier|String| | Application identifier 88 88 |appInstallationSource |String| | App installation source e.g., google-play, organic. 89 89 |email |String | | Set's user email. 90 -|cus tomUserId |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.47 +|cusUserId |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 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"] see [[plugin user field constants>>https://wiki.spicymobile.pl/wiki/mobigatesdk/view/Main/sdkintegration/reactnativeintegration/#H4.1Userfieldconstants]]. 92 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. 50 +| notificationText|String | | if state = Mobigate.DATA_GATHER_POLICY_DEFAULT you can pass custom foreground service notification text. 93 93 | enableIdProfiles|Boolean |false | turns on / off the IDs profiles system. 94 94 {{/showhide}} 95 95 ... ... @@ -97,67 +97,45 @@ 97 97 (% class="table-bordered table-hover" style="border-color:powderblue" %) 98 98 |=(% style="background-color:powderblue" %)Name|=(% style="background-color:powderblue" %)Type|=(% style="background-color:powderblue" %)Default|=(% style="background-color:powderblue" %)Description 99 99 | monitorState|String| | Possible monitor states: [[plugin constants>>https://wiki.spicymobile.pl/wiki/mobigatesdk/view/Main/sdkintegration/reactnativeintegration/#H4.2Datagatherpolicyconstants]]. 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 101 {{/showhide}} 102 102 60 +{{showhide id="3" showmessage="Example" hidemessage="Example"}} 61 +{{code language="dart"}} 62 + MobigateSDK mobigateInstance = MobigateSDK(MobigateOptions( 63 + "V0K6jhiIfem6CRWHYZ59Nmj3oFBBKbJsnSsWfR2JNq7ktblOUXwbJoBQTpWnw2uSwW76gpiu2kun50jweTY69B" 64 + )); 65 +{{/code}} 66 +{{/showhide}} 103 103 104 - Whenthelibraryis already initialized run it. Use //startSDK(onSuccess,onError)// method for that:68 +== 3.2 SDK initialization == 105 105 106 - **Mobigate.startSDK(onSuccess,onError)**70 +You must initialize the library before running it. Use //Future<String> init// method for that: 107 107 72 +**mobigateInstance.init()** 73 + 74 +Return: 75 + 108 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" %)Description110 -| onSuccess|Function|returns callbackobject111 -| onError|Function|returnscallbackobject77 +|=(% style="background-color:powderblue" %)Message|=(% style="background-color:powderblue" %)Type|=(% style="background-color:powderblue" %)Description 78 +|success|String|returns success message 79 +|error|String|returns error message 112 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])*/ 81 +When the library is already initialized run it. Use //Future<String> startSdk()// method for that: 131 131 132 - Mobigate.startSDK((result) => { 133 - this.setState({ 134 - status: 'started', 135 - }); 83 +**mobigateInstance.startSdk();** 136 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}} 85 +Return: 155 155 156 -== 3.2 Tracking in app events == 87 +(% class="table-bordered table-hover" style="border-color:powderblue" %) 88 +|=(% style="background-color:powderblue" %)Message|=(% style="background-color:powderblue" %)Type|=(% style="background-color:powderblue" %)Description 89 +|success|String|returns success message 90 +|error|String|returns error message 157 157 92 +== 3.3 Tracking in app events == 93 + 158 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 159 160 -=== 3. 2.1 Overview ===96 +=== 3.3.1 Overview === 161 161 162 162 An event consists of two fields that you (% style="display:none" %) (%%)can use to describe a user's interaction with your app content: 163 163 ... ... @@ -167,41 +167,31 @@ 167 167 |(% style="width:200px" %)Parameter|(% style="width:200px" %)String|(% style="width:200px" %)no|(% style="width:200px" %)Event parameter. 168 168 There can be more than one 169 169 170 -You can use any event category or parameter string of your choice. However, react-native-mobigate plugin contains recommended event categories and parameters via String constants (see [[Event categories>>doc:||anchor="H3.2.3Eventcategories"]] and [[Event parameters>>doc:||anchor="H3.2.4Eventparameters"]]).106 +You can use any event category or parameter string of your choice. However, flutter_mobigate plugin contains recommended event categories and parameters via String constants (see [[Event categories>>doc:||anchor="H3.2.3Eventcategories"]] and [[Event parameters>>doc:||anchor="H3.2.4Eventparameters"]]). 171 171 172 -=== 3. 2.2 Implementation ===108 +=== 3.3.2 Implementation === 173 173 174 174 Tracking in-app events is performed by two methods: 175 175 176 -** Mobigate.trackEvent(options)**112 +**void trackEvent(Category category)** 177 177 178 -{{showhide id="2" showmessage="Options" hidemessage="Options" effect="slide" effectduration="0.3"}} 179 179 (% class="table-bordered table-hover" style="border-color:powderblue" %) 180 -|=(% style="background-color:powderblue" %)Name|=(% style="background-color:powderblue" %)Type|=(% style="background-color:powderblue" %)Default|=(% style="background-color:powderblue" %)Description 181 -|name|String | | Event category name. 182 -|parameters|Json array| | Array of parameters. Look below on example. 183 -{{/showhide}} 115 +|=(% style="background-color:powderblue" %)Parameter|=(% style="background-color:powderblue" %)Type|=(% style="background-color:powderblue" %)Description 116 +|Category|Category class |Category class built with help of CategoryBuilder 184 184 185 185 {{showhide id="3" showmessage="Example" hidemessage="Example"}} 186 -{{code language="javascript"}} 187 - sendTrackEvent = () => { 188 - if (Platform.OS === 'android') { 189 - Mobigate.trackEvent({ 190 - name: Mobigate.CATEGORY_PURCHASE, 191 - parameters: { 192 - [Mobigate.PARAMETER_CONTENT_ID]: 42313532, 193 - [Mobigate.PARAMETER_PRICE]: 43.23, 194 - [Mobigate.PARAMETER_QUANTITY]: 2, 195 - 'userCustomParameterName':'simpleName' 196 - }, 197 - }) 198 - } 199 - } 119 +{{code language="dart"}} 120 +mobigateInstance.trackEvent((CategoryBuilder(EventCategory.BEGIN_TRIAL) 121 + ..setParameter(EventParameter.CITY, "Warsaw") 122 + ..setParameter(EventParameter.CONTENT_ID, 523456) 123 + ..setParameter(EventParameter.COUPON_CODE, 97636572) 124 + ..setParameter(EventParameter.CUSTOMER_SEGMENT, [1, 2, 4])) 125 + .build()); 200 200 {{/code}} 201 201 {{/showhide}} 202 202 203 203 204 -** Mobigate.trackAppInstall(timestamp)**130 +**void trackAppInstall(int timestamp)** 205 205 206 206 (% class="table-bordered table-hover" style="border-color:powderblue" %) 207 207 |=(% style="background-color:powderblue" %)Parameter|=(% style="background-color:powderblue" %)Type|=(% style="background-color:powderblue" %)Description ... ... @@ -217,7 +217,7 @@ 217 217 {{/code}} 218 218 {{/showhide}} 219 219 220 -=== 3. 2.3 Event categories ===146 +=== 3.3.3 Event categories === 221 221 222 222 The following section describes the recommended structure of each event category. In-app events categories are defined as part of plugin String constants. 223 223 ... ... @@ -472,14 +472,14 @@ 472 472 473 473 {{/showhide}} 474 474 475 -== 3. 3Remaining methods ==401 +== 3.4 Remaining methods == 476 476 477 -** Mobigate.setCollectAll()**403 +**void setCollectAll()** 478 478 This method enables all data collectors. By default all data collectors are enabled. 479 479 480 480 {{showhide id="3" showmessage="Example" hidemessage="Example"}} 481 -{{code language=" javascript"}}482 - Mobigate.disableAllDataCollector()407 +{{code language="dart"}} 408 +mobigateInstance.setCollectAll(); 483 483 {{/code}} 484 484 {{/showhide}} 485 485 ... ... @@ -486,7 +486,7 @@ 486 486 (% style="color:powderblue" %) 487 487 ---- 488 488 489 -** Mobigate.configureDataCollectors(enable, collectors)**415 +**void configureDataCollectors(bool enable, List<int> collectors)** 490 490 Enable or disable DataCollector by array collectors input 491 491 492 492 (% class="table-bordered table-hover" style="border-color:powderblue" %) ... ... @@ -496,9 +496,11 @@ 496 496 497 497 {{showhide id="3" showmessage="Example" hidemessage="Example"}} 498 498 {{code language="javascript"}} 499 -Mobigate.configureDataCollectors(true, [Mobigate.DATA_COLLECTOR_APPS_LIST, 500 - Mobigate.DATA_COLLECTOR_BATTERY, 501 - Mobigate.DATA_COLLECTOR_PHONE_INFO]) 425 +mobigateInstance.configureDataCollectors(true, [ 426 + DataCollector.APPS_LIST, 427 + DataCollector.APPS_USAGE, 428 + DataCollector.BROWSER 429 + ]) 502 502 {{/code}} 503 503 {{/showhide}} 504 504