airbridge-react-native-sdk-restricted 4.2.0 → 4.3.0
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/.github/workflows/documentation.yml +7 -0
- package/airbridge_sdk.json +2 -2
- package/android/src/main/java/co/ab180/airbridge/reactnative/AirbridgeReactNative.kt +10 -18
- package/android/src/main/java/co/ab180/airbridge/reactnative/common/AirbridgeJSON.kt +4 -3
- package/android/src/main/java/co/ab180/airbridge/reactnative/module/PlacementInteractor.kt +16 -0
- package/build/document/assets/icons.js +1 -1
- package/build/document/assets/icons.svg +1 -1
- package/build/document/assets/main.js +1 -1
- package/build/document/assets/navigation.js +1 -1
- package/build/document/assets/search.js +1 -1
- package/build/document/assets/style.css +66 -21
- package/build/document/classes/Airbridge.html +9 -2
- package/build/document/classes/AirbridgeTrackingLinkOption.html +25 -0
- package/build/document/index.html +3 -3
- package/build/document/modules.html +3 -1
- package/build/document/types/AirbridgeTrackingLink.html +3 -0
- package/build/source/Airbridge.d.ts +12 -0
- package/build/source/Airbridge.js +12 -0
- package/build/source/Airbridge.js.map +1 -1
- package/build/source/constant/AirbridgeTrackingLinkOption.d.ts +27 -0
- package/build/source/constant/AirbridgeTrackingLinkOption.js +102 -0
- package/build/source/constant/AirbridgeTrackingLinkOption.js.map +1 -0
- package/build/source/module/Placement.d.ts +3 -0
- package/build/source/module/Placement.js +28 -0
- package/build/source/module/Placement.js.map +1 -1
- package/build/source/module.d.ts +2 -0
- package/build/source/module.js +2 -0
- package/build/source/module.js.map +1 -1
- package/build/source/type/AirbridgeTrackingLink.d.ts +8 -0
- package/build/source/type/AirbridgeTrackingLink.js +2 -0
- package/build/source/type/AirbridgeTrackingLink.js.map +1 -0
- package/changelog.md +14 -0
- package/ios/AirbridgeReactNative/AirbridgeReactNative.m +0 -6
- package/ios/AirbridgeReactNative/AirbridgeReactNative.swift +12 -32
- package/ios/AirbridgeReactNative/Common/AirbridgeJSON.swift +26 -0
- package/ios/AirbridgeReactNative/Module/AirbridgeModuleExtern.m +5 -0
- package/ios/AirbridgeReactNative/Module/PlacementInteractor.swift +22 -0
- package/package.json +1 -1
- package/qa/airbridge.json +2 -1
- package/qa/airbridge_qa.json +1 -1
- package/qa/android/app/src/main/java/co/ab180/airbridge/qa/application/ConfigurationLoader.kt +19 -23
- package/qa/android/app/src/main/java/co/ab180/airbridge/qa/application/module/IdentifiersInteractor.kt +27 -0
- package/qa/ios/AirbridgeQA/AirbridgeJSONSwizzler.swift +68 -0
- package/qa/ios/AirbridgeQA/AppDelegate.mm +3 -31
- package/qa/ios/AirbridgeQA/IdentifiersInteractor.m +2 -0
- package/qa/ios/AirbridgeQA/IdentifiersInteractor.swift +24 -0
- package/qa/ios/AirbridgeQA.xcodeproj/project.pbxproj +5 -1
- package/qa/ios/Podfile.lock +61 -61
- package/qa/package-lock.json +2254 -9009
- package/qa/source/navigations/Stack.js +7 -0
- package/qa/source/pages/Home.js +5 -0
- package/qa/source/pages/Identifiers.js +15 -1
- package/qa/source/pages/TrackingLink.js +162 -0
- package/readme.md +1 -1
- package/source/Airbridge.ts +21 -1
- package/source/constant/AirbridgeTrackingLinkOption.ts +122 -0
- package/source/module/Placement.ts +54 -2
- package/source/module.ts +2 -0
- package/source/type/AirbridgeTrackingLink.ts +10 -0
|
@@ -1,4 +1,6 @@
|
|
|
1
|
-
<!DOCTYPE html><html class="default" lang="en"><head><meta charset="utf-8"/><meta http-equiv="x-ua-compatible" content="IE=edge"/><title>airbridge-react-native-sdk-restricted</title><meta name="description" content="Documentation for airbridge-react-native-sdk-restricted"/><meta name="viewport" content="width=device-width, initial-scale=1"/><link rel="stylesheet" href="assets/style.css"/><link rel="stylesheet" href="assets/highlight.css"/><script defer src="assets/main.js"></script><script async src="assets/icons.js" id="tsd-icons-script"></script><script async src="assets/search.js" id="tsd-search-script"></script><script async src="assets/navigation.js" id="tsd-nav-script"></script></head><body><script>document.documentElement.dataset.theme = localStorage.getItem("tsd-theme") || "os";document.body.style.display="none";setTimeout(() => app?app.showPage():document.body.style.removeProperty("display"),500)</script><header class="tsd-page-toolbar"><div class="tsd-toolbar-contents container"><div class="table-cell" id="tsd-search" data-base="."><div class="field"><label for="tsd-search-field" class="tsd-widget tsd-toolbar-icon search no-caption"><svg width="16" height="16" viewBox="0 0 16 16" fill="none"><use href="assets/icons.svg#icon-search"></use></svg></label><input type="text" id="tsd-search-field" aria-label="Search"/></div><div class="field"><div id="tsd-toolbar-links"></div></div><ul class="results"><li class="state loading">Preparing search index...</li><li class="state failure">The search index is not available</li></ul><a href="index.html" class="title">airbridge-react-native-sdk-restricted</a></div><div class="table-cell" id="tsd-widgets"><a href="#" class="tsd-widget tsd-toolbar-icon menu no-caption" data-toggle="menu" aria-label="Menu"><svg width="16" height="16" viewBox="0 0 16 16" fill="none"><use href="assets/icons.svg#icon-menu"></use></svg></a></div></div></header><div class="container container-main"><div class="col-content"><div class="tsd-page-title"><
|
|
1
|
+
<!DOCTYPE html><html class="default" lang="en"><head><meta charset="utf-8"/><meta http-equiv="x-ua-compatible" content="IE=edge"/><title>airbridge-react-native-sdk-restricted</title><meta name="description" content="Documentation for airbridge-react-native-sdk-restricted"/><meta name="viewport" content="width=device-width, initial-scale=1"/><link rel="stylesheet" href="assets/style.css"/><link rel="stylesheet" href="assets/highlight.css"/><script defer src="assets/main.js"></script><script async src="assets/icons.js" id="tsd-icons-script"></script><script async src="assets/search.js" id="tsd-search-script"></script><script async src="assets/navigation.js" id="tsd-nav-script"></script></head><body><script>document.documentElement.dataset.theme = localStorage.getItem("tsd-theme") || "os";document.body.style.display="none";setTimeout(() => app?app.showPage():document.body.style.removeProperty("display"),500)</script><header class="tsd-page-toolbar"><div class="tsd-toolbar-contents container"><div class="table-cell" id="tsd-search" data-base="."><div class="field"><label for="tsd-search-field" class="tsd-widget tsd-toolbar-icon search no-caption"><svg width="16" height="16" viewBox="0 0 16 16" fill="none"><use href="assets/icons.svg#icon-search"></use></svg></label><input type="text" id="tsd-search-field" aria-label="Search"/></div><div class="field"><div id="tsd-toolbar-links"></div></div><ul class="results"><li class="state loading">Preparing search index...</li><li class="state failure">The search index is not available</li></ul><a href="index.html" class="title">airbridge-react-native-sdk-restricted</a></div><div class="table-cell" id="tsd-widgets"><a href="#" class="tsd-widget tsd-toolbar-icon menu no-caption" data-toggle="menu" aria-label="Menu"><svg width="16" height="16" viewBox="0 0 16 16" fill="none"><use href="assets/icons.svg#icon-menu"></use></svg></a></div></div></header><div class="container container-main"><div class="col-content"><div class="tsd-page-title"><ul class="tsd-breadcrumb"><li><a href="modules.html">airbridge-react-native-sdk-restricted</a></li></ul><h1>airbridge-react-native-sdk-restricted</h1></div><section class="tsd-panel-group tsd-index-group"><section class="tsd-panel tsd-index-panel"><h3 class="tsd-index-heading uppercase">Index</h3><section class="tsd-index-section"><h3 class="tsd-index-heading">Classes</h3><div class="tsd-index-list"><a href="classes/Airbridge.html" class="tsd-index-link"><svg class="tsd-kind-icon" viewBox="0 0 24 24"><use href="assets/icons.svg#icon-128"></use></svg><span>Airbridge</span></a>
|
|
2
2
|
<a href="classes/AirbridgeAttribute.html" class="tsd-index-link"><svg class="tsd-kind-icon" viewBox="0 0 24 24"><use href="assets/icons.svg#icon-128"></use></svg><span>Airbridge<wbr/>Attribute</span></a>
|
|
3
3
|
<a href="classes/AirbridgeCategory.html" class="tsd-index-link"><svg class="tsd-kind-icon" viewBox="0 0 24 24"><use href="assets/icons.svg#icon-128"></use></svg><span>Airbridge<wbr/>Category</span></a>
|
|
4
|
+
<a href="classes/AirbridgeTrackingLinkOption.html" class="tsd-index-link"><svg class="tsd-kind-icon" viewBox="0 0 24 24"><use href="assets/icons.svg#icon-128"></use></svg><span>Airbridge<wbr/>Tracking<wbr/>Link<wbr/>Option</span></a>
|
|
5
|
+
</div></section><section class="tsd-index-section"><h3 class="tsd-index-heading">Type Aliases</h3><div class="tsd-index-list"><a href="types/AirbridgeTrackingLink.html" class="tsd-index-link"><svg class="tsd-kind-icon" viewBox="0 0 24 24"><use href="assets/icons.svg#icon-2097152"></use></svg><span>Airbridge<wbr/>Tracking<wbr/>Link</span></a>
|
|
4
6
|
</div></section></section></section></div><div class="col-sidebar"><div class="page-menu"><div class="tsd-navigation settings"><details class="tsd-accordion"><summary class="tsd-accordion-summary"><h3><svg width="20" height="20" viewBox="0 0 24 24" fill="none"><use href="assets/icons.svg#icon-chevronDown"></use></svg>Settings</h3></summary><div class="tsd-accordion-details"><div class="tsd-filter-visibility"><span class="settings-label">Member Visibility</span><ul id="tsd-filter-options"><li class="tsd-filter-item"><label class="tsd-filter-input"><input type="checkbox" id="tsd-filter-protected" name="protected"/><svg width="32" height="32" viewBox="0 0 32 32" aria-hidden="true"><rect class="tsd-checkbox-background" width="30" height="30" x="1" y="1" rx="6" fill="none"></rect><path class="tsd-checkbox-checkmark" d="M8.35422 16.8214L13.2143 21.75L24.6458 10.25" stroke="none" stroke-width="3.5" stroke-linejoin="round" fill="none"></path></svg><span>Protected</span></label></li><li class="tsd-filter-item"><label class="tsd-filter-input"><input type="checkbox" id="tsd-filter-inherited" name="inherited" checked/><svg width="32" height="32" viewBox="0 0 32 32" aria-hidden="true"><rect class="tsd-checkbox-background" width="30" height="30" x="1" y="1" rx="6" fill="none"></rect><path class="tsd-checkbox-checkmark" d="M8.35422 16.8214L13.2143 21.75L24.6458 10.25" stroke="none" stroke-width="3.5" stroke-linejoin="round" fill="none"></path></svg><span>Inherited</span></label></li><li class="tsd-filter-item"><label class="tsd-filter-input"><input type="checkbox" id="tsd-filter-external" name="external"/><svg width="32" height="32" viewBox="0 0 32 32" aria-hidden="true"><rect class="tsd-checkbox-background" width="30" height="30" x="1" y="1" rx="6" fill="none"></rect><path class="tsd-checkbox-checkmark" d="M8.35422 16.8214L13.2143 21.75L24.6458 10.25" stroke="none" stroke-width="3.5" stroke-linejoin="round" fill="none"></path></svg><span>External</span></label></li></ul></div><div class="tsd-theme-toggle"><label class="settings-label" for="tsd-theme">Theme</label><select id="tsd-theme"><option value="os">OS</option><option value="light">Light</option><option value="dark">Dark</option></select></div></div></details></div></div><div class="site-menu"><nav class="tsd-navigation"><a href="modules.html" class="current"><svg class="tsd-kind-icon" viewBox="0 0 24 24"><use href="assets/icons.svg#icon-1"></use></svg><span>airbridge-react-native-sdk-restricted</span></a><ul class="tsd-small-nested-navigation" id="tsd-nav-container" data-base="."><li>Loading...</li></ul></nav></div></div></div><footer><p class="tsd-generator">Generated using <a href="https://typedoc.org/" target="_blank">TypeDoc</a></p></footer><div class="overlay"></div></body></html>
|
|
@@ -0,0 +1,3 @@
|
|
|
1
|
+
<!DOCTYPE html><html class="default" lang="en"><head><meta charset="utf-8"/><meta http-equiv="x-ua-compatible" content="IE=edge"/><title>AirbridgeTrackingLink | airbridge-react-native-sdk-restricted</title><meta name="description" content="Documentation for airbridge-react-native-sdk-restricted"/><meta name="viewport" content="width=device-width, initial-scale=1"/><link rel="stylesheet" href="../assets/style.css"/><link rel="stylesheet" href="../assets/highlight.css"/><script defer src="../assets/main.js"></script><script async src="../assets/icons.js" id="tsd-icons-script"></script><script async src="../assets/search.js" id="tsd-search-script"></script><script async src="../assets/navigation.js" id="tsd-nav-script"></script></head><body><script>document.documentElement.dataset.theme = localStorage.getItem("tsd-theme") || "os";document.body.style.display="none";setTimeout(() => app?app.showPage():document.body.style.removeProperty("display"),500)</script><header class="tsd-page-toolbar"><div class="tsd-toolbar-contents container"><div class="table-cell" id="tsd-search" data-base=".."><div class="field"><label for="tsd-search-field" class="tsd-widget tsd-toolbar-icon search no-caption"><svg width="16" height="16" viewBox="0 0 16 16" fill="none"><use href="../assets/icons.svg#icon-search"></use></svg></label><input type="text" id="tsd-search-field" aria-label="Search"/></div><div class="field"><div id="tsd-toolbar-links"></div></div><ul class="results"><li class="state loading">Preparing search index...</li><li class="state failure">The search index is not available</li></ul><a href="../index.html" class="title">airbridge-react-native-sdk-restricted</a></div><div class="table-cell" id="tsd-widgets"><a href="#" class="tsd-widget tsd-toolbar-icon menu no-caption" data-toggle="menu" aria-label="Menu"><svg width="16" height="16" viewBox="0 0 16 16" fill="none"><use href="../assets/icons.svg#icon-menu"></use></svg></a></div></div></header><div class="container container-main"><div class="col-content"><div class="tsd-page-title"><ul class="tsd-breadcrumb"><li><a href="../modules.html">airbridge-react-native-sdk-restricted</a></li><li><a href="AirbridgeTrackingLink.html">AirbridgeTrackingLink</a></li></ul><h1>Type Alias AirbridgeTrackingLink</h1></div><div class="tsd-signature"><span class="tsd-kind-type-alias">Airbridge<wbr/>Tracking<wbr/>Link</span><span class="tsd-signature-symbol">:</span> <span class="tsd-signature-symbol">{ </span><br/><span> </span><span class="tsd-kind-property">qrcodeURL</span><span class="tsd-signature-symbol">: </span><span class="tsd-signature-type">string</span><span class="tsd-signature-symbol">; </span><br/><span> </span><span class="tsd-kind-property">shortURL</span><span class="tsd-signature-symbol">: </span><span class="tsd-signature-type">string</span><span class="tsd-signature-symbol">; </span><br/><span class="tsd-signature-symbol">}</span></div><div class="tsd-comment tsd-typography"><p>Holds variable types of tracking-link that move user
|
|
2
|
+
to specific page of app and track click-event.</p>
|
|
3
|
+
</div><div class="tsd-comment tsd-typography"></div></div><div class="col-sidebar"><div class="page-menu"><div class="tsd-navigation settings"><details class="tsd-accordion"><summary class="tsd-accordion-summary"><h3><svg width="20" height="20" viewBox="0 0 24 24" fill="none"><use href="../assets/icons.svg#icon-chevronDown"></use></svg>Settings</h3></summary><div class="tsd-accordion-details"><div class="tsd-filter-visibility"><span class="settings-label">Member Visibility</span><ul id="tsd-filter-options"><li class="tsd-filter-item"><label class="tsd-filter-input"><input type="checkbox" id="tsd-filter-protected" name="protected"/><svg width="32" height="32" viewBox="0 0 32 32" aria-hidden="true"><rect class="tsd-checkbox-background" width="30" height="30" x="1" y="1" rx="6" fill="none"></rect><path class="tsd-checkbox-checkmark" d="M8.35422 16.8214L13.2143 21.75L24.6458 10.25" stroke="none" stroke-width="3.5" stroke-linejoin="round" fill="none"></path></svg><span>Protected</span></label></li><li class="tsd-filter-item"><label class="tsd-filter-input"><input type="checkbox" id="tsd-filter-inherited" name="inherited" checked/><svg width="32" height="32" viewBox="0 0 32 32" aria-hidden="true"><rect class="tsd-checkbox-background" width="30" height="30" x="1" y="1" rx="6" fill="none"></rect><path class="tsd-checkbox-checkmark" d="M8.35422 16.8214L13.2143 21.75L24.6458 10.25" stroke="none" stroke-width="3.5" stroke-linejoin="round" fill="none"></path></svg><span>Inherited</span></label></li><li class="tsd-filter-item"><label class="tsd-filter-input"><input type="checkbox" id="tsd-filter-external" name="external"/><svg width="32" height="32" viewBox="0 0 32 32" aria-hidden="true"><rect class="tsd-checkbox-background" width="30" height="30" x="1" y="1" rx="6" fill="none"></rect><path class="tsd-checkbox-checkmark" d="M8.35422 16.8214L13.2143 21.75L24.6458 10.25" stroke="none" stroke-width="3.5" stroke-linejoin="round" fill="none"></path></svg><span>External</span></label></li></ul></div><div class="tsd-theme-toggle"><label class="settings-label" for="tsd-theme">Theme</label><select id="tsd-theme"><option value="os">OS</option><option value="light">Light</option><option value="dark">Dark</option></select></div></div></details></div></div><div class="site-menu"><nav class="tsd-navigation"><a href="../modules.html"><svg class="tsd-kind-icon" viewBox="0 0 24 24"><use href="../assets/icons.svg#icon-1"></use></svg><span>airbridge-react-native-sdk-restricted</span></a><ul class="tsd-small-nested-navigation" id="tsd-nav-container" data-base=".."><li>Loading...</li></ul></nav></div></div></div><footer><p class="tsd-generator">Generated using <a href="https://typedoc.org/" target="_blank">TypeDoc</a></p></footer><div class="overlay"></div></body></html>
|
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
import { AirbridgeTrackingLink } from './type/AirbridgeTrackingLink';
|
|
1
2
|
export declare const createDependency: {
|
|
2
3
|
(): void;
|
|
3
4
|
Airbridge(): {
|
|
@@ -18,6 +19,7 @@ export declare const createDependency: {
|
|
|
18
19
|
placementModule: {
|
|
19
20
|
click: (trackingLink: string, onSuccess?: () => void, onFailure?: (error: Error) => void) => Promise<boolean>;
|
|
20
21
|
impression: (trackingLink: string, onSuccess?: () => void, onFailure?: (error: Error) => void) => Promise<boolean>;
|
|
22
|
+
createTrackingLink: (channel: string, option: Record<string, any>, onSuccess: (airbridgeTrackingLink: AirbridgeTrackingLink) => void, onFailure?: (error: Error) => void) => void;
|
|
21
23
|
};
|
|
22
24
|
registerModule: {
|
|
23
25
|
setUserID: (id: string) => void;
|
|
@@ -227,4 +229,14 @@ export declare class Airbridge {
|
|
|
227
229
|
* @param command The command to handle.
|
|
228
230
|
*/
|
|
229
231
|
static handleWebInterfaceCommand(command: string): void;
|
|
232
|
+
/**
|
|
233
|
+
* Creates a tracking-link using airbridge-server that move user
|
|
234
|
+
* to specific page of app and track click-event.
|
|
235
|
+
*
|
|
236
|
+
* @param channel The channel of tracking-link.
|
|
237
|
+
* @param option The option to create tracking-link.
|
|
238
|
+
* @param onSuccess Created tracking-link is delivered if succeed.
|
|
239
|
+
* @param onFailure Error is delivered if failed.
|
|
240
|
+
*/
|
|
241
|
+
static createTrackingLink(channel: string, option: Record<string, any>, onSuccess: (airbridgeTrackingLink: AirbridgeTrackingLink) => void, onFailure?: (error: Error) => void): void;
|
|
230
242
|
}
|
|
@@ -271,6 +271,18 @@ export class Airbridge {
|
|
|
271
271
|
static handleWebInterfaceCommand(command) {
|
|
272
272
|
__classPrivateFieldGet(this, _a, "f", _Airbridge_dependency).webInterfaceModule.handleWebInterfaceCommand(command);
|
|
273
273
|
}
|
|
274
|
+
/**
|
|
275
|
+
* Creates a tracking-link using airbridge-server that move user
|
|
276
|
+
* to specific page of app and track click-event.
|
|
277
|
+
*
|
|
278
|
+
* @param channel The channel of tracking-link.
|
|
279
|
+
* @param option The option to create tracking-link.
|
|
280
|
+
* @param onSuccess Created tracking-link is delivered if succeed.
|
|
281
|
+
* @param onFailure Error is delivered if failed.
|
|
282
|
+
*/
|
|
283
|
+
static createTrackingLink(channel, option, onSuccess, onFailure) {
|
|
284
|
+
__classPrivateFieldGet(this, _a, "f", _Airbridge_dependency).placementModule.createTrackingLink(channel, option, onSuccess, onFailure);
|
|
285
|
+
}
|
|
274
286
|
}
|
|
275
287
|
_a = Airbridge;
|
|
276
288
|
_Airbridge_dependency = { value: createDependency.Airbridge() };
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Airbridge.js","sourceRoot":"","sources":["../../source/Airbridge.ts"],"names":[],"mappings":";;;;;;AAAA,OAAO,EAAE,uBAAuB,EAAE,MAAM,sBAAsB,CAAA;AAC9D,OAAO,EAAE,oBAAoB,EAAE,MAAM,mBAAmB,CAAA;AACxD,OAAO,EAAE,iBAAiB,EAAE,MAAM,gBAAgB,CAAA;AAClD,OAAO,EAAE,iBAAiB,EAAE,MAAM,gBAAgB,CAAA;AAClD,OAAO,EAAE,qBAAqB,EAAE,MAAM,oBAAoB,CAAA;AAC1D,OAAO,EAAE,oBAAoB,EAAE,MAAM,mBAAmB,CAAA;AACxD,OAAO,EAAE,kBAAkB,EAAE,MAAM,iBAAiB,CAAA;AACpD,OAAO,EAAE,wBAAwB,EAAE,MAAM,uBAAuB,CAAA;
|
|
1
|
+
{"version":3,"file":"Airbridge.js","sourceRoot":"","sources":["../../source/Airbridge.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,27 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Contains key of tracking-link option.
|
|
3
|
+
*/
|
|
4
|
+
export declare class AirbridgeTrackingLinkOption {
|
|
5
|
+
static get CAMPAIGN(): string;
|
|
6
|
+
static get AD_GROUP(): string;
|
|
7
|
+
static get AD_CREATIVE(): string;
|
|
8
|
+
static get CONTENT(): string;
|
|
9
|
+
static get TERM(): string;
|
|
10
|
+
static get SUB_ID(): string;
|
|
11
|
+
static get SUB_ID_1(): string;
|
|
12
|
+
static get SUB_ID_2(): string;
|
|
13
|
+
static get SUB_ID_3(): string;
|
|
14
|
+
static get DEEPLINK_URL(): string;
|
|
15
|
+
static get DEEPLINK_STOPOVER(): string;
|
|
16
|
+
static get FALLBACK_IOS(): string;
|
|
17
|
+
static get FALLBACK_ANDROID(): string;
|
|
18
|
+
static get FALLBACK_DESKTOP(): string;
|
|
19
|
+
static get FALLBACK_IOS_STORE_PPID(): string;
|
|
20
|
+
static get FALLBACK_ANDROID_STORE_LISTING(): string;
|
|
21
|
+
static get OGTAG_TITLE(): string;
|
|
22
|
+
static get OGTAG_DESCRIPTION(): string;
|
|
23
|
+
static get OGTAG_IMAGE_URL(): string;
|
|
24
|
+
static get OGTAG_WEBSITE_CRAWL(): string;
|
|
25
|
+
static get CUSTOM_SHORT_ID(): string;
|
|
26
|
+
static get IS_REENGAGEMENT(): string;
|
|
27
|
+
}
|
|
@@ -0,0 +1,102 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Contains key of tracking-link option.
|
|
3
|
+
*/
|
|
4
|
+
export class AirbridgeTrackingLinkOption {
|
|
5
|
+
/// A campaign parameter. (String)
|
|
6
|
+
static get CAMPAIGN() {
|
|
7
|
+
return 'campaign';
|
|
8
|
+
}
|
|
9
|
+
/// A campaign parameter. (String)
|
|
10
|
+
static get AD_GROUP() {
|
|
11
|
+
return 'ad_group';
|
|
12
|
+
}
|
|
13
|
+
/// A campaign parameter. (String)
|
|
14
|
+
static get AD_CREATIVE() {
|
|
15
|
+
return 'ad_creative';
|
|
16
|
+
}
|
|
17
|
+
/// A campaign parameter. (String)
|
|
18
|
+
static get CONTENT() {
|
|
19
|
+
return 'content';
|
|
20
|
+
}
|
|
21
|
+
/// A campaign parameter. (String)
|
|
22
|
+
static get TERM() {
|
|
23
|
+
return 'term';
|
|
24
|
+
}
|
|
25
|
+
/// A campaign parameter. (String)
|
|
26
|
+
static get SUB_ID() {
|
|
27
|
+
return 'sub_id';
|
|
28
|
+
}
|
|
29
|
+
/// A campaign parameter. (String)
|
|
30
|
+
static get SUB_ID_1() {
|
|
31
|
+
return 'sub_id_1';
|
|
32
|
+
}
|
|
33
|
+
/// A campaign parameter. (String)
|
|
34
|
+
static get SUB_ID_2() {
|
|
35
|
+
return 'sub_id_2';
|
|
36
|
+
}
|
|
37
|
+
/// A campaign parameter. (String)
|
|
38
|
+
static get SUB_ID_3() {
|
|
39
|
+
return 'sub_id_3';
|
|
40
|
+
}
|
|
41
|
+
/// A url of deeplink open the app. (Custom Scheme URL String)
|
|
42
|
+
static get DEEPLINK_URL() {
|
|
43
|
+
return 'deeplink_url';
|
|
44
|
+
}
|
|
45
|
+
/// A option enable stop-over-feature of deeplink. (Boolean)
|
|
46
|
+
static get DEEPLINK_STOPOVER() {
|
|
47
|
+
return 'deeplink_stopover';
|
|
48
|
+
}
|
|
49
|
+
/// A url of fallback for ios if app is not installed. ("store" | Web URL String)
|
|
50
|
+
static get FALLBACK_IOS() {
|
|
51
|
+
return 'fallback_ios';
|
|
52
|
+
}
|
|
53
|
+
/// A url of fallback for android if app is not installed. ("store" | Web URL String)
|
|
54
|
+
static get FALLBACK_ANDROID() {
|
|
55
|
+
return 'fallback_android';
|
|
56
|
+
}
|
|
57
|
+
/// A url of fallback for desktop if app is not installed. (Web URL String)
|
|
58
|
+
static get FALLBACK_DESKTOP() {
|
|
59
|
+
return 'fallback_desktop';
|
|
60
|
+
}
|
|
61
|
+
/// A custom id of store for ios used when user move to store. (String)
|
|
62
|
+
static get FALLBACK_IOS_STORE_PPID() {
|
|
63
|
+
return 'fallback_ios_store_ppid';
|
|
64
|
+
}
|
|
65
|
+
/// A custom id of store for android used when user move to store. (String)
|
|
66
|
+
static get FALLBACK_ANDROID_STORE_LISTING() {
|
|
67
|
+
return 'fallback_android_store_listing';
|
|
68
|
+
}
|
|
69
|
+
/// A title of link-preview. (String)
|
|
70
|
+
static get OGTAG_TITLE() {
|
|
71
|
+
return 'ogtag_title';
|
|
72
|
+
}
|
|
73
|
+
/// A description of link-preview. (String)
|
|
74
|
+
static get OGTAG_DESCRIPTION() {
|
|
75
|
+
return 'ogtag_description';
|
|
76
|
+
}
|
|
77
|
+
/// A image-url of link-preview. (Web URL String)
|
|
78
|
+
static get OGTAG_IMAGE_URL() {
|
|
79
|
+
return 'ogtag_image_url';
|
|
80
|
+
}
|
|
81
|
+
/// A customization of link-preview. ("desktop")
|
|
82
|
+
/// - Note: Airbridge crawl og-tag from response of FALLBACK_DESKTOP.
|
|
83
|
+
static get OGTAG_WEBSITE_CRAWL() {
|
|
84
|
+
return 'ogtag_website_crawl';
|
|
85
|
+
}
|
|
86
|
+
/// A custom-short-id of tracking-link. (String)
|
|
87
|
+
/// - Warning: Must be used with CUSTOM_DOMAIN option.
|
|
88
|
+
/// - Note: Refer example. <https://app.example.com/invite>
|
|
89
|
+
static get CUSTOM_SHORT_ID() {
|
|
90
|
+
return 'custom_short_id';
|
|
91
|
+
}
|
|
92
|
+
/// A option enable re-engagement-feature of attribution. ("off" | "on_true" | "on_false")
|
|
93
|
+
/// - Note: "off" uses touchpoint from install and deeplink event.
|
|
94
|
+
/// - Note: "on_true" uses touchpoint from deeplink event only.
|
|
95
|
+
/// Can be used by re-engagement campaign.
|
|
96
|
+
/// - Note: "on_false" uses touchpoint from install event only.
|
|
97
|
+
/// Can be used by UA(user-acquisition) campaign.
|
|
98
|
+
static get IS_REENGAGEMENT() {
|
|
99
|
+
return 'is_reengagement';
|
|
100
|
+
}
|
|
101
|
+
}
|
|
102
|
+
//# sourceMappingURL=AirbridgeTrackingLinkOption.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"AirbridgeTrackingLinkOption.js","sourceRoot":"","sources":["../../../source/constant/AirbridgeTrackingLinkOption.ts"],"names":[],"mappings":"AAAA;;GAEG;AACH,MAAM,OAAO,2BAA2B;IACpC,kCAAkC;IAClC,MAAM,KAAK,QAAQ;QACf,OAAO,UAAU,CAAA;IACrB,CAAC;IAED,kCAAkC;IAClC,MAAM,KAAK,QAAQ;QACf,OAAO,UAAU,CAAA;IACrB,CAAC;IAED,kCAAkC;IAClC,MAAM,KAAK,WAAW;QAClB,OAAO,aAAa,CAAA;IACxB,CAAC;IAED,kCAAkC;IAClC,MAAM,KAAK,OAAO;QACd,OAAO,SAAS,CAAA;IACpB,CAAC;IAED,kCAAkC;IAClC,MAAM,KAAK,IAAI;QACX,OAAO,MAAM,CAAA;IACjB,CAAC;IAED,kCAAkC;IAClC,MAAM,KAAK,MAAM;QACb,OAAO,QAAQ,CAAA;IACnB,CAAC;IAED,kCAAkC;IAClC,MAAM,KAAK,QAAQ;QACf,OAAO,UAAU,CAAA;IACrB,CAAC;IAED,kCAAkC;IAClC,MAAM,KAAK,QAAQ;QACf,OAAO,UAAU,CAAA;IACrB,CAAC;IAED,kCAAkC;IAClC,MAAM,KAAK,QAAQ;QACf,OAAO,UAAU,CAAA;IACrB,CAAC;IAED,8DAA8D;IAC9D,MAAM,KAAK,YAAY;QACnB,OAAO,cAAc,CAAA;IACzB,CAAC;IAED,4DAA4D;IAC5D,MAAM,KAAK,iBAAiB;QACxB,OAAO,mBAAmB,CAAA;IAC9B,CAAC;IAED,iFAAiF;IACjF,MAAM,KAAK,YAAY;QACnB,OAAO,cAAc,CAAA;IACzB,CAAC;IAED,qFAAqF;IACrF,MAAM,KAAK,gBAAgB;QACvB,OAAO,kBAAkB,CAAA;IAC7B,CAAC;IAED,2EAA2E;IAC3E,MAAM,KAAK,gBAAgB;QACvB,OAAO,kBAAkB,CAAA;IAC7B,CAAC;IAED,uEAAuE;IACvE,MAAM,KAAK,uBAAuB;QAC9B,OAAO,yBAAyB,CAAA;IACpC,CAAC;IAED,2EAA2E;IAC3E,MAAM,KAAK,8BAA8B;QACrC,OAAO,gCAAgC,CAAA;IAC3C,CAAC;IAED,qCAAqC;IACrC,MAAM,KAAK,WAAW;QAClB,OAAO,aAAa,CAAA;IACxB,CAAC;IAED,2CAA2C;IAC3C,MAAM,KAAK,iBAAiB;QACxB,OAAO,mBAAmB,CAAA;IAC9B,CAAC;IAED,iDAAiD;IACjD,MAAM,KAAK,eAAe;QACtB,OAAO,iBAAiB,CAAA;IAC5B,CAAC;IAED,gDAAgD;IAChD,qEAAqE;IACrE,MAAM,KAAK,mBAAmB;QAC1B,OAAO,qBAAqB,CAAA;IAChC,CAAC;IAED,gDAAgD;IAChD,sDAAsD;IACtD,2DAA2D;IAC3D,MAAM,KAAK,eAAe;QACtB,OAAO,iBAAiB,CAAA;IAC5B,CAAC;IAED,0FAA0F;IAC1F,kEAAkE;IAClE,+DAA+D;IAC/D,0CAA0C;IAC1C,+DAA+D;IAC/D,iDAAiD;IACjD,MAAM,KAAK,eAAe;QACtB,OAAO,iBAAiB,CAAA;IAC5B,CAAC;CACJ"}
|
|
@@ -1,4 +1,5 @@
|
|
|
1
1
|
import { NativeEventEmitter } from 'react-native';
|
|
2
|
+
import { AirbridgeTrackingLink } from '../type/AirbridgeTrackingLink';
|
|
2
3
|
export declare const createDependency: {
|
|
3
4
|
(): void;
|
|
4
5
|
PlacementModule(): {
|
|
@@ -9,10 +10,12 @@ export declare const createDependency: {
|
|
|
9
10
|
type PlacementInteractor = {
|
|
10
11
|
click(promiseID: string, trackingLink: string, onSuccess: () => void, onFailure: (message: string) => void): Promise<boolean>;
|
|
11
12
|
impression(promiseID: string, trackingLink: string, onSuccess: () => void, onFailure: (message: string) => void): Promise<boolean>;
|
|
13
|
+
createTrackingLink(channel: string, option: Record<string, any>, onSuccess: (airbridgeTrackingLink: Record<string, string>) => void, onFailure: (message: string) => void): void;
|
|
12
14
|
};
|
|
13
15
|
export type PlacementModule = ReturnType<typeof createPlacementModule>;
|
|
14
16
|
export declare const createPlacementModule: () => {
|
|
15
17
|
click: (trackingLink: string, onSuccess?: () => void, onFailure?: (error: Error) => void) => Promise<boolean>;
|
|
16
18
|
impression: (trackingLink: string, onSuccess?: () => void, onFailure?: (error: Error) => void) => Promise<boolean>;
|
|
19
|
+
createTrackingLink: (channel: string, option: Record<string, any>, onSuccess: (airbridgeTrackingLink: AirbridgeTrackingLink) => void, onFailure?: (error: Error) => void) => void;
|
|
17
20
|
};
|
|
18
21
|
export {};
|
|
@@ -86,10 +86,38 @@ export const createPlacementModule = () => {
|
|
|
86
86
|
interactor.impression(promiseID, trackingLink, () => { onSuccess === null || onSuccess === void 0 ? void 0 : onSuccess(); }, (message) => { onFailure === null || onFailure === void 0 ? void 0 : onFailure(Error(message)); });
|
|
87
87
|
});
|
|
88
88
|
});
|
|
89
|
+
const createTrackingLink = (channel, option, onSuccess, onFailure) => {
|
|
90
|
+
if (!check.string(channel)) {
|
|
91
|
+
log.unmatchedType('channel', 'string');
|
|
92
|
+
return;
|
|
93
|
+
}
|
|
94
|
+
if (!(check.undefined(option) || check.object(option))) {
|
|
95
|
+
log.unmatchedType('option', 'object');
|
|
96
|
+
return;
|
|
97
|
+
}
|
|
98
|
+
if (!check.function(onSuccess)) {
|
|
99
|
+
log.unmatchedType('onSuccess', 'function?');
|
|
100
|
+
return;
|
|
101
|
+
}
|
|
102
|
+
if (!(check.function(onFailure) || check.undefined(onFailure))) {
|
|
103
|
+
log.unmatchedType('onFailure', 'function?');
|
|
104
|
+
return;
|
|
105
|
+
}
|
|
106
|
+
interactor.createTrackingLink(channel, option, (airbridgeTrackingLink) => {
|
|
107
|
+
if (check.string(airbridgeTrackingLink['qrcodeURL']) &&
|
|
108
|
+
check.string(airbridgeTrackingLink['shortURL'])) {
|
|
109
|
+
onSuccess === null || onSuccess === void 0 ? void 0 : onSuccess({
|
|
110
|
+
qrcodeURL: airbridgeTrackingLink['qrcodeURL'],
|
|
111
|
+
shortURL: airbridgeTrackingLink['shortURL']
|
|
112
|
+
});
|
|
113
|
+
}
|
|
114
|
+
}, (message) => { onFailure === null || onFailure === void 0 ? void 0 : onFailure(Error(message)); });
|
|
115
|
+
};
|
|
89
116
|
// create object
|
|
90
117
|
return {
|
|
91
118
|
click,
|
|
92
119
|
impression,
|
|
120
|
+
createTrackingLink
|
|
93
121
|
};
|
|
94
122
|
};
|
|
95
123
|
//# sourceMappingURL=Placement.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Placement.js","sourceRoot":"","sources":["../../../source/module/Placement.ts"],"names":[],"mappings":";;;;;;;;;AAAA,OAAO,EAAE,kBAAkB,EAAE,aAAa,EAAE,MAAM,cAAc,CAAA;AAEhE,OAAO,EAAE,gBAAgB,EAAE,MAAM,4BAA4B,CAAA;AAC7D,OAAO,EAAE,KAAK,EAAE,MAAM,kBAAkB,CAAA;AACxC,OAAO,EAAE,GAAG,EAAE,MAAM,gBAAgB,CAAA;
|
|
1
|
+
{"version":3,"file":"Placement.js","sourceRoot":"","sources":["../../../source/module/Placement.ts"],"names":[],"mappings":"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"}
|
package/build/source/module.d.ts
CHANGED
package/build/source/module.js
CHANGED
|
@@ -1,4 +1,6 @@
|
|
|
1
1
|
export { Airbridge } from './Airbridge';
|
|
2
|
+
export * from './type/AirbridgeTrackingLink';
|
|
2
3
|
export * from './constant/AirbridgeAttribute';
|
|
3
4
|
export * from './constant/AirbridgeCategory';
|
|
5
|
+
export * from './constant/AirbridgeTrackingLinkOption';
|
|
4
6
|
//# sourceMappingURL=module.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"module.js","sourceRoot":"","sources":["../../source/module.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,aAAa,CAAA;AACvC,cAAc,+BAA+B,CAAA;AAC7C,cAAc,8BAA8B,CAAA"}
|
|
1
|
+
{"version":3,"file":"module.js","sourceRoot":"","sources":["../../source/module.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,aAAa,CAAA;AACvC,cAAc,8BAA8B,CAAA;AAC5C,cAAc,+BAA+B,CAAA;AAC7C,cAAc,8BAA8B,CAAA;AAC5C,cAAc,wCAAwC,CAAA"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"AirbridgeTrackingLink.js","sourceRoot":"","sources":["../../../source/type/AirbridgeTrackingLink.ts"],"names":[],"mappings":""}
|
package/changelog.md
CHANGED
|
@@ -1,3 +1,17 @@
|
|
|
1
|
+
## 4.3.0
|
|
2
|
+
|
|
3
|
+
**ADDED**
|
|
4
|
+
- Added interface create tracking link
|
|
5
|
+
|
|
6
|
+
**CHANGED**
|
|
7
|
+
* Update `Airbridge Android SDK` to 4.3.0
|
|
8
|
+
* Update `Airbridge iOS SDK` to 4.3.0
|
|
9
|
+
|
|
10
|
+
## 4.2.1
|
|
11
|
+
|
|
12
|
+
**FIXED**
|
|
13
|
+
* Fixed `isHandleAirbridgeDeeplinkOnly` option not working
|
|
14
|
+
|
|
1
15
|
## 4.2.0
|
|
2
16
|
|
|
3
17
|
**FIXED**
|
|
@@ -19,12 +19,6 @@
|
|
|
19
19
|
[AirbridgeReactNative_Swift initializeSDKWithName:name token:token];
|
|
20
20
|
}
|
|
21
21
|
|
|
22
|
-
+ (void)initializeSDKWithName:(NSString*)name
|
|
23
|
-
token:(NSString*)token
|
|
24
|
-
airbridgeJSON:(nullable NSDictionary*)airbridgeJSON {
|
|
25
|
-
[AirbridgeReactNative_Swift initializeSDKWithName:name token:token airbridgeJSON:airbridgeJSON];
|
|
26
|
-
}
|
|
27
|
-
|
|
28
22
|
+ (void)trackDeeplinkWithUrl:(NSURL*)url {
|
|
29
23
|
[AirbridgeReactNative_Swift trackDeeplinkWithUrl:url];
|
|
30
24
|
}
|
|
@@ -11,7 +11,8 @@ import Airbridge
|
|
|
11
11
|
@objc(AirbridgeReactNative_Swift)
|
|
12
12
|
public class AirbridgeReactNative: NSObject {
|
|
13
13
|
|
|
14
|
-
|
|
14
|
+
@objc
|
|
15
|
+
private static var airbridgeJSON: [AnyHashable: Any]? = nil
|
|
15
16
|
|
|
16
17
|
private static var isHandleAirbridgeDeeplinkOnly: Bool = false
|
|
17
18
|
|
|
@@ -26,28 +27,16 @@ public class AirbridgeReactNative: NSObject {
|
|
|
26
27
|
name: String,
|
|
27
28
|
token: String
|
|
28
29
|
) {
|
|
29
|
-
|
|
30
|
-
name: name,
|
|
31
|
-
token: token,
|
|
32
|
-
airbridgeJSON: nil
|
|
33
|
-
)
|
|
34
|
-
}
|
|
35
|
-
|
|
36
|
-
@objc
|
|
37
|
-
public static func initializeSDK(
|
|
38
|
-
name: String,
|
|
39
|
-
token: String,
|
|
40
|
-
airbridgeJSON: [AnyHashable: Any]?
|
|
41
|
-
) {
|
|
42
|
-
loadedAirbridgeJSON = loadAirbridgeJSON()
|
|
30
|
+
airbridgeJSON = AirbridgeJSON.loadAirbridgeJSON()
|
|
43
31
|
|
|
44
32
|
setExtraOptions(airbridgeJSON: airbridgeJSON)
|
|
45
33
|
|
|
46
34
|
Airbridge.initializeSDK(
|
|
47
35
|
option: AirbridgeOptionBuilder(name: name, token: token)
|
|
48
|
-
.setAirbridgeJSON(airbridgeJSON
|
|
36
|
+
.setAirbridgeJSON(airbridgeJSON)
|
|
49
37
|
.setSDKDevelopmentPlatform(getSDKDevelopmentPlatform())
|
|
50
38
|
.setSDKAttributes(getWrapperSDKAttributes())
|
|
39
|
+
.setSDKWrapperOption(getSDKWrapperOption())
|
|
51
40
|
.setOnAttributionReceived { attribution in
|
|
52
41
|
AttributionInteractor.onAttributionReceived(attribution)
|
|
53
42
|
}
|
|
@@ -104,10 +93,16 @@ public class AirbridgeReactNative: NSObject {
|
|
|
104
93
|
}
|
|
105
94
|
|
|
106
95
|
private static func getWrapperSDKAttributes() -> [String: String] {
|
|
107
|
-
return
|
|
96
|
+
return getSDKVersionAttributes()
|
|
108
97
|
.merging(subWrapperSDKAttributes ?? [:]) { _, new in new }
|
|
109
98
|
}
|
|
110
99
|
|
|
100
|
+
private static func getSDKWrapperOption() -> [String: Any] {
|
|
101
|
+
return [
|
|
102
|
+
"isHandleAirbridgeDeeplinkOnly" : isHandleAirbridgeDeeplinkOnly
|
|
103
|
+
]
|
|
104
|
+
}
|
|
105
|
+
|
|
111
106
|
@objc
|
|
112
107
|
private static func setSubWrapperSDK(
|
|
113
108
|
developmentPlatform: String,
|
|
@@ -118,21 +113,6 @@ public class AirbridgeReactNative: NSObject {
|
|
|
118
113
|
}
|
|
119
114
|
}
|
|
120
115
|
|
|
121
|
-
func loadAirbridgeJSON() -> [AnyHashable: Any]? {
|
|
122
|
-
guard
|
|
123
|
-
let url = Bundle.main.url(forResource: "airbridge", withExtension: "json"),
|
|
124
|
-
let data = try? Data(contentsOf: url)
|
|
125
|
-
else { return nil }
|
|
126
|
-
|
|
127
|
-
do {
|
|
128
|
-
return try JSONSerialization.jsonObject(with: data) as? [AnyHashable: Any]
|
|
129
|
-
}
|
|
130
|
-
catch {
|
|
131
|
-
Logger.warning("File airbridge.json is not in json format")
|
|
132
|
-
return nil
|
|
133
|
-
}
|
|
134
|
-
}
|
|
135
|
-
|
|
136
116
|
func getSDKVersionAttributes() -> [String: String] {
|
|
137
117
|
guard
|
|
138
118
|
let path = Bundle.main.path(forResource: "LibraryInfo", ofType: "json"),
|
|
@@ -0,0 +1,26 @@
|
|
|
1
|
+
//
|
|
2
|
+
// AirbridgeJSON.swift
|
|
3
|
+
// Pods
|
|
4
|
+
//
|
|
5
|
+
// Created by ab180 on 3/4/25.
|
|
6
|
+
//
|
|
7
|
+
|
|
8
|
+
@objc(AirbridgeJSON_Swift)
|
|
9
|
+
public class AirbridgeJSON: NSObject {
|
|
10
|
+
|
|
11
|
+
@objc(loadAirbridgeJSON) dynamic
|
|
12
|
+
class func loadAirbridgeJSON() -> [AnyHashable: Any]? {
|
|
13
|
+
guard
|
|
14
|
+
let url = Bundle.main.url(forResource: "airbridge", withExtension: "json"),
|
|
15
|
+
let data = try? Data(contentsOf: url)
|
|
16
|
+
else { return nil }
|
|
17
|
+
|
|
18
|
+
do {
|
|
19
|
+
return try JSONSerialization.jsonObject(with: data) as? [AnyHashable: Any]
|
|
20
|
+
}
|
|
21
|
+
catch {
|
|
22
|
+
Logger.warning("File airbridge.json is not in json format")
|
|
23
|
+
return nil
|
|
24
|
+
}
|
|
25
|
+
}
|
|
26
|
+
}
|
|
@@ -58,6 +58,11 @@ RCT_EXTERN_METHOD(impression:(nonnull NSString*)promiseID
|
|
|
58
58
|
onSuccess:(RCTResponseSenderBlock)onSuccess
|
|
59
59
|
onFailure:(RCTResponseSenderBlock)onFailure)
|
|
60
60
|
|
|
61
|
+
RCT_EXTERN_METHOD(createTrackingLink:(nonnull NSString*)channel
|
|
62
|
+
option:(nonnull NSDictionary*)option
|
|
63
|
+
onSuccess:(RCTResponseSenderBlock)onSuccess
|
|
64
|
+
onFailure:(RCTResponseSenderBlock)onFailure)
|
|
65
|
+
|
|
61
66
|
@end
|
|
62
67
|
|
|
63
68
|
// Register
|
|
@@ -57,6 +57,28 @@ class PlacementInteractor: RCTEventEmitter {
|
|
|
57
57
|
]
|
|
58
58
|
)
|
|
59
59
|
}
|
|
60
|
+
|
|
61
|
+
@objc(createTrackingLink:option:onSuccess:onFailure:)
|
|
62
|
+
func createTrackingLink(
|
|
63
|
+
_ channel: String,
|
|
64
|
+
_ option: [String: Any],
|
|
65
|
+
_ onSuccess: @escaping RCTResponseSenderBlock,
|
|
66
|
+
_ onFailure: @escaping RCTResponseSenderBlock
|
|
67
|
+
) {
|
|
68
|
+
Airbridge.createTrackingLink(
|
|
69
|
+
channel: channel,
|
|
70
|
+
option: option,
|
|
71
|
+
onSuccess: {
|
|
72
|
+
onSuccess([[
|
|
73
|
+
"shortURL": $0.shortURL.absoluteString,
|
|
74
|
+
"qrcodeURL": $0.qrcodeURL.absoluteString
|
|
75
|
+
]])
|
|
76
|
+
},
|
|
77
|
+
onFailure: { error in
|
|
78
|
+
onFailure([error.localizedDescription])
|
|
79
|
+
}
|
|
80
|
+
)
|
|
81
|
+
}
|
|
60
82
|
|
|
61
83
|
override func supportedEvents() -> [String]! {
|
|
62
84
|
["airbridge.placement"]
|
package/package.json
CHANGED
package/qa/airbridge.json
CHANGED
|
@@ -3,5 +3,6 @@
|
|
|
3
3
|
"trackingAuthorizeTimeoutSeconds": 15,
|
|
4
4
|
"sdkSignatureSecretID": "eacf944d-a6da-47e2-a38c-ac3f76bb37bb",
|
|
5
5
|
"sdkSignatureSecret": "d8ddd2b61947195fa73ef5d8d3cc4092acb280c281f1fc96479c35ef483f2cfe",
|
|
6
|
-
"logLevel": "debug"
|
|
6
|
+
"logLevel": "debug",
|
|
7
|
+
"isHandleAirbridgeDeeplinkOnly": true
|
|
7
8
|
}
|