airbridge-react-native-sdk-restricted 2.6.0 → 2.7.2
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/airbridge-react-native-sdk-restricted.podspec +1 -1
- package/airbridge-react-native-sdk.podspec.bak +32 -0
- package/android/build.gradle.bak +27 -0
- package/android/src/main/java/co/ab180/airbridge/reactnative/AirbridgeLifecycle.java +31 -0
- package/android/src/main/java/co/ab180/airbridge/reactnative/AirbridgeLifecycleIntegration.java +8 -0
- package/android/src/main/java/co/ab180/airbridge/reactnative/AirbridgeRN.java +16 -1
- package/android/src/main/java/co/ab180/airbridge/reactnative/ConfigReader.java +13 -0
- package/changelog.md +13 -0
- package/index.d.ts.bak +292 -0
- package/package-lock.json.bak +28591 -0
- package/package.json +1 -1
- package/package.json.bak +43 -0
- package/src/WebInterface.js +1 -1
- package/android/build/.transforms/08e8d929b7926845ebd25bc2ae9e2874/results.bin +0 -1
- package/android/build/.transforms/08e8d929b7926845ebd25bc2ae9e2874/transformed/classes/classes.dex +0 -0
- package/android/build/.transforms/14ea77658b61f201debed3d92aea1c0f/results.bin +0 -1
- package/android/build/.transforms/14ea77658b61f201debed3d92aea1c0f/transformed/classes/classes.dex +0 -0
- package/android/build/.transforms/2390436b966bc5097b67e6b068c14f9d/results.bin +0 -1
- package/android/build/.transforms/2390436b966bc5097b67e6b068c14f9d/transformed/classes/classes.dex +0 -0
- package/android/build/.transforms/33560bbaf5632b59753ef78fcd7b7f8d/results.bin +0 -1
- package/android/build/.transforms/33560bbaf5632b59753ef78fcd7b7f8d/transformed/classes/classes.dex +0 -0
- package/android/build/.transforms/38fa05fa6fd488a5dec6d7bdb333bfd1/results.bin +0 -1
- package/android/build/.transforms/38fa05fa6fd488a5dec6d7bdb333bfd1/transformed/classes/classes.dex +0 -0
- package/android/build/.transforms/405120ecc1eb36e3127f0c3846387eb6/results.bin +0 -1
- package/android/build/.transforms/405120ecc1eb36e3127f0c3846387eb6/transformed/classes/classes.dex +0 -0
- package/android/build/.transforms/61c549f58a941c195c4ffb5f43fed2ef/results.bin +0 -1
- package/android/build/.transforms/61c549f58a941c195c4ffb5f43fed2ef/transformed/classes/classes.dex +0 -0
- package/android/build/.transforms/75c8746e5247a4500eb6ae4ca2ef0a2e/results.bin +0 -1
- package/android/build/.transforms/75c8746e5247a4500eb6ae4ca2ef0a2e/transformed/classes/classes.dex +0 -0
- package/android/build/.transforms/85f88a3c5a226a3333c60b94378960e9/results.bin +0 -1
- package/android/build/.transforms/85f88a3c5a226a3333c60b94378960e9/transformed/classes/classes.dex +0 -0
- package/android/build/.transforms/8f01556cdda8590f3b7cee54078417e1/results.bin +0 -1
- package/android/build/.transforms/8f01556cdda8590f3b7cee54078417e1/transformed/classes/classes.dex +0 -0
- package/android/build/.transforms/905b1aa9b91e69e71e9ed75a0c99581c/results.bin +0 -1
- package/android/build/.transforms/905b1aa9b91e69e71e9ed75a0c99581c/transformed/classes/classes.dex +0 -0
- package/android/build/.transforms/983e33cb97b3d1caf80afe6b7ca652b3/results.bin +0 -1
- package/android/build/.transforms/983e33cb97b3d1caf80afe6b7ca652b3/transformed/classes/classes.dex +0 -0
- package/android/build/.transforms/b398922a5d6aaf33784a06f933228695/results.bin +0 -1
- package/android/build/.transforms/b398922a5d6aaf33784a06f933228695/transformed/classes/classes.dex +0 -0
- package/android/build/.transforms/b4ff5fb2fdb627c9a67ad50ae0347ece/results.bin +0 -1
- package/android/build/.transforms/b4ff5fb2fdb627c9a67ad50ae0347ece/transformed/classes/classes.dex +0 -0
- package/android/build/.transforms/bd23069f3be7102a6b2b5871a2981878/results.bin +0 -1
- package/android/build/.transforms/bd23069f3be7102a6b2b5871a2981878/transformed/classes/classes.dex +0 -0
- package/android/build/.transforms/d0194b4ec5799d8f3feab261c0e35de9/results.bin +0 -1
- package/android/build/.transforms/d0194b4ec5799d8f3feab261c0e35de9/transformed/classes/classes.dex +0 -0
- package/android/build/.transforms/d89a0ea59a0fb9c21321de6f1be36c2b/results.bin +0 -1
- package/android/build/.transforms/d89a0ea59a0fb9c21321de6f1be36c2b/transformed/classes/classes.dex +0 -0
- package/android/build/.transforms/dca3c4e952522adb6e9c477431cc0881/results.bin +0 -1
- package/android/build/.transforms/dca3c4e952522adb6e9c477431cc0881/transformed/classes/classes.dex +0 -0
- package/android/build/.transforms/e6b9f6a4f6dc26d29d4ac4172b428541/results.bin +0 -1
- package/android/build/.transforms/e6b9f6a4f6dc26d29d4ac4172b428541/transformed/classes/classes.dex +0 -0
- package/android/build/.transforms/e8ebcf4ab4a209e222c80ef37e9122e2/results.bin +0 -1
- package/android/build/.transforms/e8ebcf4ab4a209e222c80ef37e9122e2/transformed/classes/classes.dex +0 -0
- package/android/build/generated/source/buildConfig/debug/co/ab180/airbridge/reactnative/BuildConfig.java +0 -10
- package/android/build/intermediates/aapt_friendly_merged_manifests/debug/aapt/AndroidManifest.xml +0 -12
- package/android/build/intermediates/aapt_friendly_merged_manifests/debug/aapt/output-metadata.json +0 -18
- package/android/build/intermediates/aar_metadata/debug/aar-metadata.properties +0 -3
- package/android/build/intermediates/annotation_processor_list/debug/annotationProcessors.json +0 -1
- package/android/build/intermediates/compile_library_classes_jar/debug/classes.jar +0 -0
- package/android/build/intermediates/compile_r_class_jar/debug/R.jar +0 -0
- package/android/build/intermediates/compile_symbol_list/debug/R.txt +0 -1862
- package/android/build/intermediates/incremental/debug/packageDebugResources/compile-file-map.properties +0 -1
- package/android/build/intermediates/incremental/debug/packageDebugResources/merger.xml +0 -2
- package/android/build/intermediates/incremental/mergeDebugJniLibFolders/merger.xml +0 -2
- package/android/build/intermediates/incremental/mergeDebugShaders/merger.xml +0 -2
- package/android/build/intermediates/incremental/packageDebugAssets/merger.xml +0 -2
- package/android/build/intermediates/incremental/packageDebugResources/compile-file-map.properties +0 -1
- package/android/build/intermediates/incremental/packageDebugResources/merger.xml +0 -2
- package/android/build/intermediates/javac/debug/classes/co/ab180/airbridge/reactnative/AirbridgeAttribution.class +0 -0
- package/android/build/intermediates/javac/debug/classes/co/ab180/airbridge/reactnative/AirbridgeDeeplink$1.class +0 -0
- package/android/build/intermediates/javac/debug/classes/co/ab180/airbridge/reactnative/AirbridgeDeeplink.class +0 -0
- package/android/build/intermediates/javac/debug/classes/co/ab180/airbridge/reactnative/AirbridgeEvent.class +0 -0
- package/android/build/intermediates/javac/debug/classes/co/ab180/airbridge/reactnative/AirbridgePlacement.class +0 -0
- package/android/build/intermediates/javac/debug/classes/co/ab180/airbridge/reactnative/AirbridgeRN.class +0 -0
- package/android/build/intermediates/javac/debug/classes/co/ab180/airbridge/reactnative/AirbridgeState$1.class +0 -0
- package/android/build/intermediates/javac/debug/classes/co/ab180/airbridge/reactnative/AirbridgeState.class +0 -0
- package/android/build/intermediates/javac/debug/classes/co/ab180/airbridge/reactnative/BuildConfig.class +0 -0
- package/android/build/intermediates/javac/debug/classes/co/ab180/airbridge/reactnative/ConfigReader$1.class +0 -0
- package/android/build/intermediates/javac/debug/classes/co/ab180/airbridge/reactnative/ConfigReader$2.class +0 -0
- package/android/build/intermediates/javac/debug/classes/co/ab180/airbridge/reactnative/ConfigReader.class +0 -0
- package/android/build/intermediates/javac/debug/classes/co/ab180/airbridge/reactnative/Get.class +0 -0
- package/android/build/intermediates/local_only_symbol_list/debug/R-def.txt +0 -2
- package/android/build/intermediates/manifest_merge_blame_file/debug/manifest-merger-blame-debug-report.txt +0 -18
- package/android/build/intermediates/merged_manifest/debug/AndroidManifest.xml +0 -12
- package/android/build/intermediates/navigation_json/debug/navigation.json +0 -1
- package/android/build/intermediates/packaged_manifests/debug/output-metadata.json +0 -18
- package/android/build/intermediates/runtime_library_classes_jar/debug/classes.jar +0 -0
- package/android/build/intermediates/symbol_list_with_package_name/debug/package-aware-r.txt +0 -1382
- package/android/build/outputs/logs/manifest-merger-debug-report.txt +0 -33
- package/android/build/tmp/compileDebugJavaWithJavac/previous-compilation-data.bin +0 -0
|
@@ -24,7 +24,7 @@ Pod::Spec.new do |s|
|
|
|
24
24
|
s.public_header_files = 'ios/AirbridgeRN/AirbridgeRN.h'
|
|
25
25
|
|
|
26
26
|
s.dependency 'React'
|
|
27
|
-
s.dependency 'AirBridgeRestricted', '1.
|
|
27
|
+
s.dependency 'AirBridgeRestricted', '1.35.0'
|
|
28
28
|
|
|
29
29
|
s.pod_target_xcconfig = {
|
|
30
30
|
'DEFINES_MODULE' => 'YES'
|
|
@@ -0,0 +1,32 @@
|
|
|
1
|
+
require 'json'
|
|
2
|
+
require_relative 'ios/copy-config.rb'
|
|
3
|
+
|
|
4
|
+
package = JSON.parse(File.read(File.join(__dir__, 'package.json')))
|
|
5
|
+
|
|
6
|
+
Pod::Spec.new do |s|
|
|
7
|
+
s.name = package['name']
|
|
8
|
+
s.version = package['version']
|
|
9
|
+
s.summary = package['description']
|
|
10
|
+
s.description = package['description']
|
|
11
|
+
s.license = package['license']
|
|
12
|
+
s.author = package['author']
|
|
13
|
+
s.homepage = package['homepage']
|
|
14
|
+
s.source = { :http => 'file:' + __dir__ }
|
|
15
|
+
|
|
16
|
+
s.requires_arc = true
|
|
17
|
+
s.platform = :ios, '11.0'
|
|
18
|
+
|
|
19
|
+
s.preserve_paths = 'README.md', 'package.json', 'index.js'
|
|
20
|
+
|
|
21
|
+
s.source_files = 'ios/AirbridgeRN/*.{h,m}'
|
|
22
|
+
|
|
23
|
+
s.header_dir = 'AirbridgeRN'
|
|
24
|
+
s.public_header_files = 'ios/AirbridgeRN/AirbridgeRN.h'
|
|
25
|
+
|
|
26
|
+
s.dependency 'React'
|
|
27
|
+
s.dependency 'AirBridge', '1.35.0'
|
|
28
|
+
|
|
29
|
+
s.pod_target_xcconfig = {
|
|
30
|
+
'DEFINES_MODULE' => 'YES'
|
|
31
|
+
}
|
|
32
|
+
end
|
|
@@ -0,0 +1,27 @@
|
|
|
1
|
+
apply plugin: 'com.android.library'
|
|
2
|
+
|
|
3
|
+
android {
|
|
4
|
+
compileSdkVersion 30
|
|
5
|
+
buildToolsVersion '29.0.2'
|
|
6
|
+
|
|
7
|
+
defaultConfig {
|
|
8
|
+
minSdkVersion 16
|
|
9
|
+
targetSdkVersion 30
|
|
10
|
+
versionCode 1
|
|
11
|
+
versionName '1.0.0'
|
|
12
|
+
}
|
|
13
|
+
}
|
|
14
|
+
|
|
15
|
+
rootProject.allprojects {
|
|
16
|
+
repositories {
|
|
17
|
+
maven { url 'https://sdk-download.airbridge.io/maven' }
|
|
18
|
+
}
|
|
19
|
+
}
|
|
20
|
+
|
|
21
|
+
dependencies {
|
|
22
|
+
implementation 'com.facebook.react:react-native:+'
|
|
23
|
+
api 'io.airbridge:sdk-android:2.23.0'
|
|
24
|
+
implementation 'com.android.installreferrer:installreferrer:2.1'
|
|
25
|
+
}
|
|
26
|
+
|
|
27
|
+
apply from: 'copy-config.gradle'
|
|
@@ -0,0 +1,31 @@
|
|
|
1
|
+
package co.ab180.airbridge.reactnative;
|
|
2
|
+
|
|
3
|
+
import androidx.annotation.NonNull;
|
|
4
|
+
|
|
5
|
+
import com.facebook.react.bridge.ReactApplicationContext;
|
|
6
|
+
import com.facebook.react.bridge.ReactContextBaseJavaModule;
|
|
7
|
+
|
|
8
|
+
import javax.annotation.Nonnull;
|
|
9
|
+
|
|
10
|
+
public class AirbridgeLifecycle extends ReactContextBaseJavaModule {
|
|
11
|
+
|
|
12
|
+
private static AirbridgeLifecycleIntegration airbridgeLifecycleIntegration = null;
|
|
13
|
+
|
|
14
|
+
public AirbridgeLifecycle(@NonNull ReactApplicationContext reactContext) {
|
|
15
|
+
super(reactContext);
|
|
16
|
+
}
|
|
17
|
+
|
|
18
|
+
static void setLifecycleIntegration(AirbridgeLifecycleIntegration lifecycleIntegration) {
|
|
19
|
+
airbridgeLifecycleIntegration = lifecycleIntegration;
|
|
20
|
+
}
|
|
21
|
+
|
|
22
|
+
static AirbridgeLifecycleIntegration getLifecycleIntegration() {
|
|
23
|
+
return airbridgeLifecycleIntegration;
|
|
24
|
+
}
|
|
25
|
+
|
|
26
|
+
@NonNull
|
|
27
|
+
@Override
|
|
28
|
+
public String getName() {
|
|
29
|
+
return "AirbridgeLifecycle";
|
|
30
|
+
}
|
|
31
|
+
}
|
|
@@ -39,6 +39,20 @@ public class AirbridgeRN implements ReactPackage {
|
|
|
39
39
|
Airbridge.init(application, ConfigReader.build(appName, appToken, application));
|
|
40
40
|
}
|
|
41
41
|
|
|
42
|
+
|
|
43
|
+
/**
|
|
44
|
+
* Use this method to fetch the correct deep links in exceptional circumstances.
|
|
45
|
+
*
|
|
46
|
+
* When your app is opened by tapping a push notification,
|
|
47
|
+
* third-party libraries (like `Braze`) can provide a customized mechanism to handle deep links.
|
|
48
|
+
* This mechanism may differ from the default Android OS deep linking process.
|
|
49
|
+
*
|
|
50
|
+
* @param value An instance of [AirbridgeLifecycleIntegration] that defines the customized mechanism for handling deep links.
|
|
51
|
+
*/
|
|
52
|
+
public static void setLifecycleIntegration(AirbridgeLifecycleIntegration lifecycleIntegration) {
|
|
53
|
+
AirbridgeLifecycle.setLifecycleIntegration(lifecycleIntegration);
|
|
54
|
+
}
|
|
55
|
+
|
|
42
56
|
//
|
|
43
57
|
// deeplink
|
|
44
58
|
//
|
|
@@ -65,7 +79,8 @@ public class AirbridgeRN implements ReactPackage {
|
|
|
65
79
|
new AirbridgeDeeplink(reactContext),
|
|
66
80
|
new AirbridgeState(reactContext),
|
|
67
81
|
new AirbridgePlacement(reactContext),
|
|
68
|
-
new AirbridgeAttribution(reactContext)
|
|
82
|
+
new AirbridgeAttribution(reactContext),
|
|
83
|
+
new AirbridgeLifecycle(reactContext)
|
|
69
84
|
);
|
|
70
85
|
}
|
|
71
86
|
|
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
package co.ab180.airbridge.reactnative;
|
|
2
2
|
|
|
3
|
+
import android.app.Activity;
|
|
3
4
|
import android.content.Context;
|
|
4
5
|
import android.content.res.AssetManager;
|
|
5
6
|
import android.util.Log;
|
|
@@ -106,6 +107,18 @@ class ConfigReader {
|
|
|
106
107
|
|
|
107
108
|
configBuilder.setPlatform("react_native");
|
|
108
109
|
|
|
110
|
+
configBuilder.setLifecycleIntegration(new co.ab180.airbridge.AirbridgeLifecycleIntegration() {
|
|
111
|
+
@Override
|
|
112
|
+
public String getDataString(Activity activity) {
|
|
113
|
+
AirbridgeLifecycleIntegration callback = AirbridgeLifecycle.getLifecycleIntegration();
|
|
114
|
+
if (callback == null) {
|
|
115
|
+
return null;
|
|
116
|
+
} else {
|
|
117
|
+
return callback.getDataString(activity);
|
|
118
|
+
}
|
|
119
|
+
}
|
|
120
|
+
});
|
|
121
|
+
|
|
109
122
|
configBuilder.setOnAttributionResultReceiveListener(new OnAttributionResultReceiveListener() {
|
|
110
123
|
@Override
|
|
111
124
|
public void onAttributionResultReceived(Map<String, String> attribution) {
|
package/changelog.md
CHANGED
|
@@ -1,8 +1,21 @@
|
|
|
1
|
+
## 2.7.2
|
|
2
|
+
|
|
3
|
+
**FIXED**
|
|
4
|
+
* Update `Airbridge iOS SDK` to 1.35.0
|
|
5
|
+
|
|
6
|
+
## 2.7.1
|
|
7
|
+
|
|
8
|
+
**ADDED**
|
|
9
|
+
* Add Lifecycle integration interface (Android Only)
|
|
10
|
+
|
|
1
11
|
## 2.6.0
|
|
2
12
|
|
|
3
13
|
**ADDED**
|
|
4
14
|
* Add facebookInstallReferrer option
|
|
5
15
|
|
|
16
|
+
**FIXED**
|
|
17
|
+
* Update `Airbridge Android SDK` to 2.23.0
|
|
18
|
+
|
|
6
19
|
## 2.5.3
|
|
7
20
|
|
|
8
21
|
**ADDED**
|
package/index.d.ts.bak
ADDED
|
@@ -0,0 +1,292 @@
|
|
|
1
|
+
declare module "airbridge-react-native-sdk" {
|
|
2
|
+
|
|
3
|
+
/**
|
|
4
|
+
* main class (singleton)
|
|
5
|
+
*/
|
|
6
|
+
class Airbridge {
|
|
7
|
+
event: Event;
|
|
8
|
+
deeplink: Deeplink;
|
|
9
|
+
state: State;
|
|
10
|
+
placement: Placement;
|
|
11
|
+
|
|
12
|
+
/**
|
|
13
|
+
* Set device alias
|
|
14
|
+
* @param {string} key - device alias key
|
|
15
|
+
* @param {string} value - device alias value
|
|
16
|
+
*/
|
|
17
|
+
setDeviceAlias(key: string, value: string): void;
|
|
18
|
+
|
|
19
|
+
/**
|
|
20
|
+
* Remove device alias
|
|
21
|
+
* @param {string} key - callback of attribution
|
|
22
|
+
*/
|
|
23
|
+
removeDeviceAlias(key: string): void;
|
|
24
|
+
|
|
25
|
+
/**
|
|
26
|
+
* clear device alias
|
|
27
|
+
*/
|
|
28
|
+
clearDeviceAlias(): void;
|
|
29
|
+
|
|
30
|
+
/**
|
|
31
|
+
* Send event to server.
|
|
32
|
+
* @param {string} category event name
|
|
33
|
+
* @param {EventOption} [option={}] event options
|
|
34
|
+
*/
|
|
35
|
+
trackEvent(category: string, option?: EventOption): void;
|
|
36
|
+
|
|
37
|
+
/**
|
|
38
|
+
* register push token
|
|
39
|
+
* @param {string} token - push token
|
|
40
|
+
*/
|
|
41
|
+
registerPushToken(token: string): void;
|
|
42
|
+
|
|
43
|
+
/**
|
|
44
|
+
* create interface of webview
|
|
45
|
+
* @param webToken token for airbridge web sdk that using on webview
|
|
46
|
+
* @param postCommandFunction notify to interface how to post command to native
|
|
47
|
+
* @returns {WebInterface} Web Interface
|
|
48
|
+
*/
|
|
49
|
+
createWebInterface(
|
|
50
|
+
webToken: string,
|
|
51
|
+
postCommandFunction: (command: string) => string,
|
|
52
|
+
): WebInterface;
|
|
53
|
+
}
|
|
54
|
+
|
|
55
|
+
/**
|
|
56
|
+
* class for interface of webview
|
|
57
|
+
*/
|
|
58
|
+
class WebInterface {
|
|
59
|
+
script: string;
|
|
60
|
+
/**
|
|
61
|
+
* handle command from webview
|
|
62
|
+
* @param {String} command command from webview
|
|
63
|
+
*/
|
|
64
|
+
handle(command: string): void;
|
|
65
|
+
}
|
|
66
|
+
|
|
67
|
+
/**
|
|
68
|
+
* @param deeplink - URL of deeplink
|
|
69
|
+
*/
|
|
70
|
+
type DeeplinkListener = (deeplink: string | null) => void;
|
|
71
|
+
|
|
72
|
+
/**
|
|
73
|
+
* class for set SDK's deeplink behavior (singleton)
|
|
74
|
+
*/
|
|
75
|
+
class Deeplink {
|
|
76
|
+
/**
|
|
77
|
+
* Set DeeplinkListener (listen deeplink or deferred-deeplink)<br/>
|
|
78
|
+
* @param listener - callback of deeplink & deferred-deeplink
|
|
79
|
+
*/
|
|
80
|
+
setDeeplinkListener(listener: DeeplinkListener): void;
|
|
81
|
+
}
|
|
82
|
+
|
|
83
|
+
/**
|
|
84
|
+
* class for send event (singleton)
|
|
85
|
+
*/
|
|
86
|
+
class Event {
|
|
87
|
+
/**
|
|
88
|
+
* Send event to server.
|
|
89
|
+
* @param {string} category event name
|
|
90
|
+
* @param {EventOption} [option={}] event options
|
|
91
|
+
*/
|
|
92
|
+
trackEvent(category: string, option?: EventOption): void;
|
|
93
|
+
}
|
|
94
|
+
|
|
95
|
+
/**
|
|
96
|
+
* class for use SDK's placement function (singleton)
|
|
97
|
+
*/
|
|
98
|
+
class Placement {
|
|
99
|
+
/**
|
|
100
|
+
* 1. send +1 click statistics to server<br/>
|
|
101
|
+
* 2. get deeplink and fallback from server<br/>
|
|
102
|
+
* 3. open deeplink. when fail, open fallback<br/>
|
|
103
|
+
* 4. parameter's deeplink, fallback is spare for network-fail
|
|
104
|
+
* @param trackingLink - created on dashboard
|
|
105
|
+
*/
|
|
106
|
+
click(trackingLink: string): void;
|
|
107
|
+
/**
|
|
108
|
+
* send +1 impression statistics to server<br/>
|
|
109
|
+
* @param trackingLink - created on dashboard
|
|
110
|
+
*/
|
|
111
|
+
impression(trackingLink: string): void;
|
|
112
|
+
}
|
|
113
|
+
|
|
114
|
+
/**
|
|
115
|
+
* @param attribution - URL of attribution
|
|
116
|
+
*/
|
|
117
|
+
type AttributionListener = (attribution: {
|
|
118
|
+
[key: string]: string;
|
|
119
|
+
}) => void;
|
|
120
|
+
|
|
121
|
+
/**
|
|
122
|
+
* class for manage SDK's state (singleton)
|
|
123
|
+
*/
|
|
124
|
+
class State {
|
|
125
|
+
/**
|
|
126
|
+
* set current user<br/>
|
|
127
|
+
*
|
|
128
|
+
* user.property is null, if input.property is null
|
|
129
|
+
* @param user - user infomation
|
|
130
|
+
*/
|
|
131
|
+
setUser(user: User): void;
|
|
132
|
+
/**
|
|
133
|
+
* update current user<br/>
|
|
134
|
+
*
|
|
135
|
+
* user.property not be changed, if input.property is null
|
|
136
|
+
* @param user - user infomation
|
|
137
|
+
*/
|
|
138
|
+
updateUser(user: User): void;
|
|
139
|
+
/**
|
|
140
|
+
* make airbridge start tracking
|
|
141
|
+
*/
|
|
142
|
+
startTracking(): void;
|
|
143
|
+
/**
|
|
144
|
+
* get deviceUUID of Airbridge SDK.
|
|
145
|
+
*/
|
|
146
|
+
deviceUUID(): Promise<string>;
|
|
147
|
+
/**
|
|
148
|
+
* Set AttributionListener (listen attribution)<br/>
|
|
149
|
+
* @param listener - callback of attribution
|
|
150
|
+
*/
|
|
151
|
+
setAttributionListener(listener: AttributionListener): void;
|
|
152
|
+
|
|
153
|
+
/**
|
|
154
|
+
* Set device alias
|
|
155
|
+
* @param {string} key - device alias key
|
|
156
|
+
* @param {string} value - device alias value
|
|
157
|
+
*/
|
|
158
|
+
setDeviceAlias(key: string, value: string): void;
|
|
159
|
+
|
|
160
|
+
/**
|
|
161
|
+
* Remove device alias
|
|
162
|
+
* @param {string} key - callback of attribution
|
|
163
|
+
*/
|
|
164
|
+
removeDeviceAlias(key: string): void;
|
|
165
|
+
|
|
166
|
+
/**
|
|
167
|
+
* clear device alias
|
|
168
|
+
*/
|
|
169
|
+
clearDeviceAlias(): void;
|
|
170
|
+
|
|
171
|
+
/**
|
|
172
|
+
* register push token
|
|
173
|
+
* @param {string} token - push token
|
|
174
|
+
*/
|
|
175
|
+
registerPushToken(token: string): void;
|
|
176
|
+
}
|
|
177
|
+
|
|
178
|
+
class WebInterface {
|
|
179
|
+
|
|
180
|
+
/**
|
|
181
|
+
* handle command from webview
|
|
182
|
+
*/
|
|
183
|
+
public readonly script: string;
|
|
184
|
+
|
|
185
|
+
/**
|
|
186
|
+
* handle command from webview
|
|
187
|
+
* @param {String} command command from webview
|
|
188
|
+
*/
|
|
189
|
+
handle(command: string): void;
|
|
190
|
+
}
|
|
191
|
+
|
|
192
|
+
/**
|
|
193
|
+
* @property {string} [action] event group name 1
|
|
194
|
+
* @property {string} [label] event group name 2
|
|
195
|
+
* @property {number} [value] event custom value
|
|
196
|
+
* @property {{}} [customAttributes] event custom attributes
|
|
197
|
+
* @property {{}} [semanticAttributes] event semantic attributes
|
|
198
|
+
*/
|
|
199
|
+
type EventOption = {
|
|
200
|
+
action?: string;
|
|
201
|
+
label?: string;
|
|
202
|
+
value?: number;
|
|
203
|
+
customAttributes?: {
|
|
204
|
+
[key: string]: string;
|
|
205
|
+
};
|
|
206
|
+
semanticAttributes?: {
|
|
207
|
+
[key: string]: any;
|
|
208
|
+
};
|
|
209
|
+
};
|
|
210
|
+
|
|
211
|
+
/**
|
|
212
|
+
* @property {string} [ID] - Product's unique identifier
|
|
213
|
+
* @property {string} [name] - Product's name
|
|
214
|
+
* @property {string} [currency] - currency in <a href='https://en.wikipedia.org/wiki/ISO_4217'>ISO 4217<a/>
|
|
215
|
+
* @property {number} [price] - Product's price
|
|
216
|
+
* @property {number} [quantity] - Purchased quantity
|
|
217
|
+
* @property {number} [position] - Product's index in list
|
|
218
|
+
*/
|
|
219
|
+
type Product = {
|
|
220
|
+
ID?: string;
|
|
221
|
+
name?: string;
|
|
222
|
+
currency?: string;
|
|
223
|
+
price?: number;
|
|
224
|
+
quantity?: number;
|
|
225
|
+
position?: number;
|
|
226
|
+
};
|
|
227
|
+
|
|
228
|
+
/**
|
|
229
|
+
* @property {string} [ID] - User's ID (not allow empty string)
|
|
230
|
+
* @property {string} [email] - User's Email (not allow empty string)
|
|
231
|
+
* @property {string} [phone] - User's Phone Number (not allow empty string)
|
|
232
|
+
* @property {{}} [alias] - User's Alias
|
|
233
|
+
* @property {{}} [attributes] - User's Attributes
|
|
234
|
+
*/
|
|
235
|
+
type User = {
|
|
236
|
+
ID?: string;
|
|
237
|
+
email?: string;
|
|
238
|
+
phone?: string;
|
|
239
|
+
alias?: {
|
|
240
|
+
[key: string]: string;
|
|
241
|
+
};
|
|
242
|
+
attributes?: {
|
|
243
|
+
[key: string]: any;
|
|
244
|
+
};
|
|
245
|
+
};
|
|
246
|
+
|
|
247
|
+
const AirbridgeCategory: {
|
|
248
|
+
SIGN_UP: string
|
|
249
|
+
SIGN_IN: string
|
|
250
|
+
SIGN_OUT: string
|
|
251
|
+
|
|
252
|
+
HOME_VIEW: string
|
|
253
|
+
SEARCH_RESULT_VIEW: string
|
|
254
|
+
PRODUCT_LIST_VIEW: string
|
|
255
|
+
PRODUCT_DETAILS_VIEW: string
|
|
256
|
+
|
|
257
|
+
ADD_TO_CART: string
|
|
258
|
+
ORDER_COMPLETED: string
|
|
259
|
+
}
|
|
260
|
+
|
|
261
|
+
const AirbridgeAttributes: {
|
|
262
|
+
QUERY: string
|
|
263
|
+
PRODUCT_LIST_ID: string
|
|
264
|
+
CART_ID: string
|
|
265
|
+
TRANSACTION_ID: string
|
|
266
|
+
PRODUCTS: string
|
|
267
|
+
IN_APP_PURCHASED: string
|
|
268
|
+
CURRENCY: string
|
|
269
|
+
TOTAL_VALUE: string
|
|
270
|
+
TOTAL_QUANTITY: string
|
|
271
|
+
}
|
|
272
|
+
|
|
273
|
+
const AirbridgeProduct: {
|
|
274
|
+
PRODUCT_ID: string
|
|
275
|
+
NAME: string
|
|
276
|
+
CURRENCY: string
|
|
277
|
+
PRICE: string
|
|
278
|
+
QUANTITY: string
|
|
279
|
+
POSITION: string
|
|
280
|
+
}
|
|
281
|
+
|
|
282
|
+
const airbridge: Airbridge;
|
|
283
|
+
|
|
284
|
+
export default airbridge;
|
|
285
|
+
|
|
286
|
+
export {
|
|
287
|
+
AirbridgeCategory,
|
|
288
|
+
AirbridgeAttributes,
|
|
289
|
+
AirbridgeProduct,
|
|
290
|
+
WebInterface,
|
|
291
|
+
}
|
|
292
|
+
}
|