airbridge-react-native-sdk-restricted 2.8.9 → 4.1.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/.github/workflows/build.yml +249 -159
- package/.github/workflows/documentation.yml +79 -0
- package/.github/workflows/qa.yml +187 -0
- package/.github/workflows/release.yml +26 -0
- package/airbridge-react-native-sdk-restricted.podspec +10 -7
- package/airbridge_sdk.json +4 -0
- package/android/build.gradle +22 -5
- package/android/{copy-config.gradle → copy-airbridge-json.gradle} +2 -2
- package/android/src/main/java/co/ab180/airbridge/reactnative/AirbridgeReactNative.kt +153 -0
- package/android/src/main/java/co/ab180/airbridge/reactnative/common/AirbridgeLifecycleIntegration.kt +7 -0
- package/android/src/main/java/co/ab180/airbridge/reactnative/extension/AirbridgeOptionBuilderApply.kt +79 -0
- package/android/src/main/java/co/ab180/airbridge/reactnative/extension/JSONConvert.kt +33 -0
- package/android/src/main/java/co/ab180/airbridge/reactnative/module/AttributionInteractor.kt +54 -0
- package/android/src/main/java/co/ab180/airbridge/reactnative/module/DeeplinkInteractor.kt +45 -0
- package/android/src/main/java/co/ab180/airbridge/reactnative/module/EventInteractor.kt +22 -0
- package/android/src/main/java/co/ab180/airbridge/reactnative/module/FetchInteractor.kt +51 -0
- package/android/src/main/java/co/ab180/airbridge/reactnative/module/PlacementInteractor.kt +56 -0
- package/android/src/main/java/co/ab180/airbridge/reactnative/module/RegisterInteractor.kt +108 -0
- package/android/src/main/java/co/ab180/airbridge/reactnative/module/SwitchInteractor.kt +43 -0
- package/android/src/main/java/co/ab180/airbridge/reactnative/module/WebInterfaceInteractor.kt +24 -0
- package/build/document/.nojekyll +1 -0
- package/build/document/assets/highlight.css +22 -0
- package/build/document/assets/icons.js +18 -0
- package/build/document/assets/icons.svg +1 -0
- package/build/document/assets/main.js +60 -0
- package/build/document/assets/navigation.js +1 -0
- package/build/document/assets/search.js +1 -0
- package/build/document/assets/style.css +1448 -0
- package/build/document/classes/Airbridge.html +113 -0
- package/build/document/classes/AirbridgeAttribute.html +49 -0
- package/build/document/classes/AirbridgeCategory.html +28 -0
- package/build/document/index.html +8 -0
- package/build/document/modules.html +4 -0
- package/build/source/Airbridge.d.ts +230 -0
- package/build/source/Airbridge.js +277 -0
- package/build/source/Airbridge.js.map +1 -0
- package/build/source/architecture/Interactor.d.ts +2 -0
- package/build/source/architecture/Interactor.js +7 -0
- package/build/source/architecture/Interactor.js.map +1 -0
- package/build/source/architecture/module.d.ts +1 -0
- package/build/source/architecture/module.js +2 -0
- package/build/source/architecture/module.js.map +1 -0
- package/build/source/constant/AirbridgeAttribute.d.ts +51 -0
- package/build/source/constant/AirbridgeAttribute.js +144 -0
- package/build/source/constant/AirbridgeAttribute.js.map +1 -0
- package/build/source/constant/AirbridgeCategory.d.ts +30 -0
- package/build/source/constant/AirbridgeCategory.js +81 -0
- package/build/source/constant/AirbridgeCategory.js.map +1 -0
- package/build/source/module/Attribution.d.ts +16 -0
- package/build/source/module/Attribution.js +39 -0
- package/build/source/module/Attribution.js.map +1 -0
- package/build/source/module/Deeplink.d.ts +17 -0
- package/build/source/module/Deeplink.js +40 -0
- package/build/source/module/Deeplink.js.map +1 -0
- package/build/source/module/Event.d.ts +14 -0
- package/build/source/module/Event.js +50 -0
- package/build/source/module/Event.js.map +1 -0
- package/build/source/module/Fetch.d.ts +19 -0
- package/build/source/module/Fetch.js +100 -0
- package/build/source/module/Fetch.js.map +1 -0
- package/build/source/module/Placement.d.ts +18 -0
- package/build/source/module/Placement.js +95 -0
- package/build/source/module/Placement.js.map +1 -0
- package/build/source/module/Register.d.ts +49 -0
- package/build/source/module/Register.js +138 -0
- package/build/source/module/Register.js.map +1 -0
- package/build/source/module/Switch.d.ts +24 -0
- package/build/source/module/Switch.js +39 -0
- package/build/source/module/Switch.js.map +1 -0
- package/build/source/module/WebInterface.d.ts +16 -0
- package/build/source/module/WebInterface.js +46 -0
- package/build/source/module/WebInterface.js.map +1 -0
- package/build/source/module.d.ts +3 -0
- package/build/source/module.js +4 -0
- package/build/source/module.js.map +1 -0
- package/build/source/utility/check.d.ts +13 -0
- package/build/source/utility/check.js +15 -0
- package/build/source/utility/check.js.map +1 -0
- package/build/source/utility/compute.d.ts +3 -0
- package/build/source/utility/compute.js +5 -0
- package/build/source/utility/compute.js.map +1 -0
- package/build/source/utility/create.d.ts +5 -0
- package/build/source/utility/create.js +12 -0
- package/build/source/utility/create.js.map +1 -0
- package/build/source/utility/extract.d.ts +3 -0
- package/build/source/utility/extract.js +4 -0
- package/build/source/utility/extract.js.map +1 -0
- package/build/source/utility/json.d.ts +11 -0
- package/build/source/utility/json.js +137 -0
- package/build/source/utility/json.js.map +1 -0
- package/build/source/utility/log.d.ts +4 -0
- package/build/source/utility/log.js +9 -0
- package/build/source/utility/log.js.map +1 -0
- package/changelog.md +14 -3
- package/ios/AirbridgeReactNative/AirbridgeReactNative.h +23 -0
- package/ios/AirbridgeReactNative/AirbridgeReactNative.m +36 -0
- package/ios/AirbridgeReactNative/AirbridgeReactNative.swift +107 -0
- package/ios/AirbridgeReactNative/Extension/AirbridgeOptionBuilderApply.swift +86 -0
- package/ios/AirbridgeReactNative/Extension/DataFromHex.swift +21 -0
- package/ios/AirbridgeReactNative/Extension/Logger.swift +62 -0
- package/ios/AirbridgeReactNative/Module/AirbridgeModuleExtern.m +133 -0
- package/ios/AirbridgeReactNative/Module/AttributionInteractor.swift +43 -0
- package/ios/AirbridgeReactNative/Module/DeeplinkInteractor.swift +49 -0
- package/ios/AirbridgeReactNative/Module/EventInteractor.swift +26 -0
- package/ios/AirbridgeReactNative/Module/FetchInteractor.swift +66 -0
- package/ios/AirbridgeReactNative/Module/PlacementInteractor.swift +72 -0
- package/ios/AirbridgeReactNative/Module/RegisterInteractor.swift +104 -0
- package/ios/AirbridgeReactNative/Module/SwitchInteractor.swift +48 -0
- package/ios/AirbridgeReactNative/Module/WebInterfaceInteractor.swift +30 -0
- package/ios/{copy-config.rb → copy-airbridge-json.rb} +1 -1
- package/package.json +18 -27
- package/qa/Gemfile +3 -4
- package/qa/Gemfile.lock +28 -17
- package/qa/airbridge_qa.json +6 -0
- package/qa/android/app/build.gradle +30 -26
- package/qa/android/app/src/main/AndroidManifest.xml +182 -7
- package/qa/android/app/src/main/java/co/ab180/airbridge/qa/application/ConfigurationLoader.kt +5 -5
- package/qa/android/app/src/main/java/co/ab180/airbridge/qa/application/MainActivity.kt +2 -2
- package/qa/android/app/src/main/java/co/ab180/airbridge/qa/application/module/IdentifiersInteractor.kt +8 -17
- package/qa/android/app/src/main/java/co/ab180/airbridge/qa/application/module/InstallReferrerInteractor.kt +13 -22
- package/qa/android/app/src/main/java/co/ab180/airbridge/qa/application/module/ModuleInjector.kt +1 -2
- package/qa/android/app/src/main/res/values/airbridge.xml +16 -0
- package/qa/android/build.gradle +4 -2
- package/qa/android/gradle/wrapper/gradle-wrapper.properties +1 -1
- package/qa/android/gradle.properties +0 -2
- package/qa/android/gradlew +1 -1
- package/qa/android/settings.gradle +3 -1
- package/qa/ios/AirbridgeQA/AirbridgeQA.entitlements +12 -0
- package/qa/ios/AirbridgeQA/AppDelegate.mm +40 -30
- package/qa/ios/AirbridgeQA/DeviceInfoInteractor.swift +0 -1
- package/qa/ios/AirbridgeQA/IdentifiersInteractor.swift +4 -8
- package/qa/ios/AirbridgeQA/Images.xcassets/AppIcon.appiconset/AppIcon-20@2x.png +0 -0
- package/qa/ios/AirbridgeQA/Images.xcassets/AppIcon.appiconset/AppIcon-20@2x~ipad.png +0 -0
- package/qa/ios/AirbridgeQA/Images.xcassets/AppIcon.appiconset/AppIcon-20@3x.png +0 -0
- package/qa/ios/AirbridgeQA/Images.xcassets/AppIcon.appiconset/AppIcon-20~ipad.png +0 -0
- package/qa/ios/AirbridgeQA/Images.xcassets/AppIcon.appiconset/AppIcon-29.png +0 -0
- package/qa/ios/AirbridgeQA/Images.xcassets/AppIcon.appiconset/AppIcon-29@2x.png +0 -0
- package/qa/ios/AirbridgeQA/Images.xcassets/AppIcon.appiconset/AppIcon-29@2x~ipad.png +0 -0
- package/qa/ios/AirbridgeQA/Images.xcassets/AppIcon.appiconset/AppIcon-29@3x.png +0 -0
- package/qa/ios/AirbridgeQA/Images.xcassets/AppIcon.appiconset/AppIcon-29~ipad.png +0 -0
- package/qa/ios/AirbridgeQA/Images.xcassets/AppIcon.appiconset/AppIcon-40@2x.png +0 -0
- package/qa/ios/AirbridgeQA/Images.xcassets/AppIcon.appiconset/AppIcon-40@2x~ipad.png +0 -0
- package/qa/ios/AirbridgeQA/Images.xcassets/AppIcon.appiconset/AppIcon-40@3x.png +0 -0
- package/qa/ios/AirbridgeQA/Images.xcassets/AppIcon.appiconset/AppIcon-40~ipad.png +0 -0
- package/qa/ios/AirbridgeQA/Images.xcassets/AppIcon.appiconset/AppIcon-60@2x~car.png +0 -0
- package/qa/ios/AirbridgeQA/Images.xcassets/AppIcon.appiconset/AppIcon-60@3x~car.png +0 -0
- package/qa/ios/AirbridgeQA/Images.xcassets/AppIcon.appiconset/AppIcon-83.5@2x~ipad.png +0 -0
- package/qa/ios/AirbridgeQA/Images.xcassets/AppIcon.appiconset/AppIcon@2x.png +0 -0
- package/qa/ios/AirbridgeQA/Images.xcassets/AppIcon.appiconset/AppIcon@2x~ipad.png +0 -0
- package/qa/ios/AirbridgeQA/Images.xcassets/AppIcon.appiconset/AppIcon@3x.png +0 -0
- package/qa/ios/AirbridgeQA/Images.xcassets/AppIcon.appiconset/AppIcon~ios-marketing.png +0 -0
- package/qa/ios/AirbridgeQA/Images.xcassets/AppIcon.appiconset/AppIcon~ipad.png +0 -0
- package/qa/ios/AirbridgeQA/Images.xcassets/AppIcon.appiconset/Contents.json +113 -32
- package/qa/ios/AirbridgeQA/Info.plist +8 -0
- package/qa/ios/AirbridgeQA.xcodeproj/project.pbxproj +47 -29
- package/qa/ios/InternalLibrary/airbridge-ios-sdk-qa-library.podspec +32 -0
- package/qa/ios/InternalLibrary/airbridge-ios-sdk-restricted.podspec +32 -0
- package/qa/ios/Library/airbridge-ios-sdk-qa-library.podspec +6 -1
- package/qa/ios/Podfile +13 -1
- package/qa/ios/Podfile.lock +689 -316
- package/qa/ios/Script/prepare-build-parameter.rb +23 -0
- package/qa/metro.config.js +5 -2
- package/qa/package-lock.json +3369 -1433
- package/qa/package.json +30 -30
- package/qa/source/App.js +13 -6
- package/qa/source/common/FCMService.js +39 -15
- package/qa/source/common/QALog.js +12 -0
- package/qa/source/navigations/Stack.js +8 -1
- package/qa/source/pages/AppInfo.js +40 -0
- package/qa/source/pages/Browse.js +16 -19
- package/qa/source/pages/DeviceInfo.js +10 -4
- package/qa/source/pages/Event.js +70 -60
- package/qa/source/pages/Home.js +77 -17
- package/qa/source/pages/Identifiers.js +10 -6
- package/qa/source/pages/Placement.js +3 -3
- package/qa/source/pages/Skad.js +76 -0
- package/qa/source/pages/UserInfo.js +47 -28
- package/readme.md +6 -6
- package/script/BuildDocument.sh +10 -0
- package/{scripts/build-qa.sh → script/BuildQA.sh} +5 -4
- package/script/BuildSource.sh +14 -0
- package/script/ChangeInternalSDK.sh +22 -0
- package/script/ChangeProductionSDK.sh +39 -0
- package/script/ChangeRestricted.sh +34 -0
- package/script/PrepareBuildParameter.sh +28 -0
- package/source/Airbridge.ts +340 -0
- package/source/architecture/Interactor.ts +10 -0
- package/source/architecture/module.ts +1 -0
- package/source/constant/AirbridgeAttribute.ts +188 -0
- package/source/constant/AirbridgeCategory.ts +104 -0
- package/source/module/Attribution.ts +4 -8
- package/source/module/Deeplink.ts +59 -0
- package/source/module/Event.ts +71 -0
- package/source/module/Fetch.ts +137 -0
- package/source/module/Placement.ts +134 -0
- package/source/module/Register.ts +203 -0
- package/source/module/Switch.ts +61 -0
- package/source/module/WebInterface.ts +55 -0
- package/source/module.ts +3 -0
- package/source/tsconfig.json +14 -0
- package/source/utility/check.ts +46 -0
- package/source/utility/compute.ts +9 -0
- package/source/utility/create.ts +12 -0
- package/source/utility/extract.ts +5 -0
- package/source/utility/json.ts +180 -0
- package/source/utility/log.ts +14 -0
- package/test/jest.json +13 -0
- package/test/mock.ts +112 -0
- package/test/module/Deeplink.test.ts +29 -0
- package/test/tsconfig.json +8 -0
- package/.eslintrc.json +0 -44
- package/.gitattributes +0 -1
- package/.github/actions/add-github-check/action.yml +0 -78
- package/.github/actions/add-github-comment/action.yml +0 -48
- package/.github/actions/add-slack-message/action.yml +0 -32
- package/.github/actions/edit-github-check/action.yml +0 -59
- package/.github/actions/edit-github-comment/action.yml +0 -41
- package/.github/workflows/release-restricted.yml +0 -35
- package/android/src/main/java/co/ab180/airbridge/reactnative/AirbridgeAttribution.java +0 -78
- package/android/src/main/java/co/ab180/airbridge/reactnative/AirbridgeDeeplink.java +0 -97
- package/android/src/main/java/co/ab180/airbridge/reactnative/AirbridgeEvent.java +0 -76
- package/android/src/main/java/co/ab180/airbridge/reactnative/AirbridgeLifecycle.java +0 -31
- package/android/src/main/java/co/ab180/airbridge/reactnative/AirbridgeLifecycleIntegration.java +0 -8
- package/android/src/main/java/co/ab180/airbridge/reactnative/AirbridgePlacement.java +0 -42
- package/android/src/main/java/co/ab180/airbridge/reactnative/AirbridgeRN.java +0 -112
- package/android/src/main/java/co/ab180/airbridge/reactnative/AirbridgeState.java +0 -174
- package/android/src/main/java/co/ab180/airbridge/reactnative/ConfigReader.java +0 -154
- package/android/src/main/java/co/ab180/airbridge/reactnative/Get.java +0 -84
- package/index.d.ts +0 -338
- package/index.js +0 -8
- package/ios/AirbridgeRN/ARNConfigReader.h +0 -19
- package/ios/AirbridgeRN/ARNConfigReader.m +0 -80
- package/ios/AirbridgeRN/ARNGet.h +0 -20
- package/ios/AirbridgeRN/ARNGet.m +0 -40
- package/ios/AirbridgeRN/ARNHex.h +0 -16
- package/ios/AirbridgeRN/ARNHex.m +0 -44
- package/ios/AirbridgeRN/AirbridgeAttribution.h +0 -19
- package/ios/AirbridgeRN/AirbridgeAttribution.m +0 -47
- package/ios/AirbridgeRN/AirbridgeDeeplink.h +0 -20
- package/ios/AirbridgeRN/AirbridgeDeeplink.m +0 -59
- package/ios/AirbridgeRN/AirbridgeEvent.h +0 -17
- package/ios/AirbridgeRN/AirbridgeEvent.m +0 -63
- package/ios/AirbridgeRN/AirbridgePlacement.h +0 -17
- package/ios/AirbridgeRN/AirbridgePlacement.m +0 -38
- package/ios/AirbridgeRN/AirbridgeRN.h +0 -71
- package/ios/AirbridgeRN/AirbridgeRN.m +0 -83
- package/ios/AirbridgeRN/AirbridgeState.h +0 -17
- package/ios/AirbridgeRN/AirbridgeState.m +0 -94
- package/ios/AirbridgeRN.xcodeproj/project.pbxproj +0 -417
- package/qa/android/app/src/main/java/co/ab180/airbridge/qa/application/module/UserInfoInteractor.kt +0 -74
- package/qa/ios/AirbridgeQA/UserInfoInteractor.m +0 -57
- package/qa/ios/AirbridgeQA/UserInfoInteractor.swift +0 -49
- package/qa/source/pages/appInfo.js +0 -22
- package/scripts/addiOSFramework.js +0 -48
- package/scripts/change_restricted.sh +0 -21
- package/scripts/update_native_version.sh +0 -104
- package/src/Airbridge.js +0 -82
- package/src/Deeplink.js +0 -75
- package/src/Event.js +0 -38
- package/src/Placement.js +0 -56
- package/src/State.js +0 -175
- package/src/WebInterface.js +0 -135
- package/src/tool/Log.js +0 -40
- package/src/tool/_.js +0 -56
- package/src/type/AirbridgeAttributes.js +0 -40
- package/src/type/AirbridgeCategory.js +0 -35
- package/src/type/AirbridgeProduct.js +0 -18
- package/src/typedef/EventOption.js +0 -9
- package/src/typedef/Product.js +0 -10
- package/src/typedef/User.js +0 -9
|
@@ -1,59 +0,0 @@
|
|
|
1
|
-
//
|
|
2
|
-
// AirbridgeDeeplink.m
|
|
3
|
-
// AirbridgeRN
|
|
4
|
-
//
|
|
5
|
-
// Created by WOF on 15/04/2019.
|
|
6
|
-
// Copyright © 2019 ab180. All rights reserved.
|
|
7
|
-
//
|
|
8
|
-
|
|
9
|
-
#import "AirbridgeDeeplink.h"
|
|
10
|
-
|
|
11
|
-
// Airbridge
|
|
12
|
-
#import <AirBridge/AirBridge.h>
|
|
13
|
-
|
|
14
|
-
@implementation AirbridgeDeeplink
|
|
15
|
-
|
|
16
|
-
static NSString* initialDeeplink;
|
|
17
|
-
|
|
18
|
-
+ (void) setInitialDeeplinkCallback {
|
|
19
|
-
[AirBridge.deeplink setDeeplinkCallback:^(NSString* deeplink) {
|
|
20
|
-
initialDeeplink = deeplink;
|
|
21
|
-
}];
|
|
22
|
-
}
|
|
23
|
-
|
|
24
|
-
//
|
|
25
|
-
// react native method
|
|
26
|
-
//
|
|
27
|
-
|
|
28
|
-
RCT_EXPORT_MODULE();
|
|
29
|
-
|
|
30
|
-
RCT_EXPORT_METHOD(listen) {
|
|
31
|
-
__block AirbridgeDeeplink* _self = self;
|
|
32
|
-
|
|
33
|
-
if (initialDeeplink != nil) {
|
|
34
|
-
[_self sendEventWithName:@"airbridge.deeplink" body:initialDeeplink];
|
|
35
|
-
initialDeeplink = nil;
|
|
36
|
-
}
|
|
37
|
-
|
|
38
|
-
[AirBridge.deeplink setDeeplinkCallback:^(NSString* deeplink) {
|
|
39
|
-
[_self sendEventWithName:@"airbridge.deeplink" body:deeplink];
|
|
40
|
-
}];
|
|
41
|
-
}
|
|
42
|
-
|
|
43
|
-
//
|
|
44
|
-
// override
|
|
45
|
-
//
|
|
46
|
-
|
|
47
|
-
- (NSArray<NSString*>*)supportedEvents {
|
|
48
|
-
return @[@"airbridge.deeplink"];
|
|
49
|
-
}
|
|
50
|
-
|
|
51
|
-
+ (BOOL)requiresMainQueueSetup {
|
|
52
|
-
return YES;
|
|
53
|
-
}
|
|
54
|
-
|
|
55
|
-
- (dispatch_queue_t)methodQueue {
|
|
56
|
-
return dispatch_get_main_queue();
|
|
57
|
-
}
|
|
58
|
-
|
|
59
|
-
@end
|
|
@@ -1,17 +0,0 @@
|
|
|
1
|
-
//
|
|
2
|
-
// AirbridgeEvent.h
|
|
3
|
-
// AirbridgeRN
|
|
4
|
-
//
|
|
5
|
-
// Created by WOF on 15/04/2019.
|
|
6
|
-
// Copyright © 2019 ab180. All rights reserved.
|
|
7
|
-
//
|
|
8
|
-
|
|
9
|
-
#import <React/RCTBridgeModule.h>
|
|
10
|
-
|
|
11
|
-
NS_ASSUME_NONNULL_BEGIN
|
|
12
|
-
|
|
13
|
-
@interface AirbridgeEvent : NSObject <RCTBridgeModule>
|
|
14
|
-
|
|
15
|
-
@end
|
|
16
|
-
|
|
17
|
-
NS_ASSUME_NONNULL_END
|
|
@@ -1,63 +0,0 @@
|
|
|
1
|
-
//
|
|
2
|
-
// AirbridgeEvent.m
|
|
3
|
-
// AirbridgeRN
|
|
4
|
-
//
|
|
5
|
-
// Created by WOF on 15/04/2019.
|
|
6
|
-
// Copyright © 2019 ab180. All rights reserved.
|
|
7
|
-
//
|
|
8
|
-
|
|
9
|
-
#import "AirbridgeEvent.h"
|
|
10
|
-
|
|
11
|
-
// Airbridge
|
|
12
|
-
#import <AirBridge/AirBridge.h>
|
|
13
|
-
#import <AirBridge/ABUserEvent.h>
|
|
14
|
-
#import <AirBridge/ABEcommerceEvent.h>
|
|
15
|
-
// AB
|
|
16
|
-
#import "ARNGet.h"
|
|
17
|
-
|
|
18
|
-
@implementation AirbridgeEvent
|
|
19
|
-
|
|
20
|
-
//
|
|
21
|
-
// react native method
|
|
22
|
-
//
|
|
23
|
-
|
|
24
|
-
RCT_EXPORT_MODULE();
|
|
25
|
-
|
|
26
|
-
RCT_EXPORT_METHOD(trackEvent:(NSString*)category option:(nullable NSDictionary*)option) {
|
|
27
|
-
ABInAppEvent* event = [[ABInAppEvent alloc] init];
|
|
28
|
-
|
|
29
|
-
[event setCategory:category];
|
|
30
|
-
addOptionToEvent(event, option);
|
|
31
|
-
|
|
32
|
-
[event send];
|
|
33
|
-
}
|
|
34
|
-
|
|
35
|
-
//
|
|
36
|
-
// private - tool
|
|
37
|
-
//
|
|
38
|
-
|
|
39
|
-
/**
|
|
40
|
-
* Add option infomation to event
|
|
41
|
-
* @discussion add nil when some data has unmatch type
|
|
42
|
-
* @param event
|
|
43
|
-
* target event
|
|
44
|
-
* @param option
|
|
45
|
-
* dictionary which has option infomation
|
|
46
|
-
*/
|
|
47
|
-
static void addOptionToEvent(ABInAppEvent* event, NSDictionary* __nullable option) {
|
|
48
|
-
if(option == nil) return;
|
|
49
|
-
|
|
50
|
-
NSString* action = [ARNGet type:NSString.class dictionary:option key:@"action"];
|
|
51
|
-
NSString* label = [ARNGet type:NSString.class dictionary:option key:@"label"];
|
|
52
|
-
NSNumber* value = [ARNGet type:NSNumber.class dictionary:option key:@"value"];
|
|
53
|
-
NSDictionary* attributes = [ARNGet type:NSDictionary.class dictionary:option key:@"customAttributes"];
|
|
54
|
-
NSDictionary* semantics = [ARNGet type:NSDictionary.class dictionary:option key:@"semanticAttributes"];
|
|
55
|
-
|
|
56
|
-
[event setAction:action];
|
|
57
|
-
[event setLabel:label];
|
|
58
|
-
[event setValue:value];
|
|
59
|
-
[event setCustoms:attributes];
|
|
60
|
-
[event setSemantics:semantics];
|
|
61
|
-
}
|
|
62
|
-
|
|
63
|
-
@end
|
|
@@ -1,17 +0,0 @@
|
|
|
1
|
-
//
|
|
2
|
-
// AirbridgePlacement.h
|
|
3
|
-
// AirbridgeRN
|
|
4
|
-
//
|
|
5
|
-
// Created by WOF on 13/08/2019.
|
|
6
|
-
// Copyright © 2019 ab180. All rights reserved.
|
|
7
|
-
//
|
|
8
|
-
|
|
9
|
-
#import <React/RCTBridgeModule.h>
|
|
10
|
-
|
|
11
|
-
NS_ASSUME_NONNULL_BEGIN
|
|
12
|
-
|
|
13
|
-
@interface AirbridgePlacement : NSObject <RCTBridgeModule>
|
|
14
|
-
|
|
15
|
-
@end
|
|
16
|
-
|
|
17
|
-
NS_ASSUME_NONNULL_END
|
|
@@ -1,38 +0,0 @@
|
|
|
1
|
-
//
|
|
2
|
-
// AirbridgePlacement.m
|
|
3
|
-
// AirbridgeRN
|
|
4
|
-
//
|
|
5
|
-
// Created by WOF on 13/08/2019.
|
|
6
|
-
// Copyright © 2019 ab180. All rights reserved.
|
|
7
|
-
//
|
|
8
|
-
|
|
9
|
-
#import "AirbridgePlacement.h"
|
|
10
|
-
|
|
11
|
-
// Airbridge
|
|
12
|
-
#import <AirBridge/AirBridge.h>
|
|
13
|
-
|
|
14
|
-
@implementation AirbridgePlacement
|
|
15
|
-
|
|
16
|
-
//
|
|
17
|
-
// react native method
|
|
18
|
-
//
|
|
19
|
-
|
|
20
|
-
RCT_EXPORT_MODULE();
|
|
21
|
-
|
|
22
|
-
RCT_EXPORT_METHOD(click:(nonnull NSString*)trackingLink)
|
|
23
|
-
{
|
|
24
|
-
NSURL* trackingLinkURL = [[NSURL alloc] initWithString:trackingLink];
|
|
25
|
-
if (trackingLinkURL != nil) {
|
|
26
|
-
[AirBridge.placement click:trackingLinkURL completion:nil];
|
|
27
|
-
}
|
|
28
|
-
}
|
|
29
|
-
|
|
30
|
-
RCT_EXPORT_METHOD(impression:(nonnull NSString*)trackingLink)
|
|
31
|
-
{
|
|
32
|
-
NSURL* trackingLinkURL = [[NSURL alloc] initWithString:trackingLink];
|
|
33
|
-
if (trackingLinkURL != nil) {
|
|
34
|
-
[AirBridge.placement impression:trackingLinkURL completion:nil];
|
|
35
|
-
}
|
|
36
|
-
}
|
|
37
|
-
|
|
38
|
-
@end
|
|
@@ -1,71 +0,0 @@
|
|
|
1
|
-
//
|
|
2
|
-
// AirbridgeRN.h
|
|
3
|
-
// AirbridgeRN
|
|
4
|
-
//
|
|
5
|
-
// Created by WOF on 17/04/2019.
|
|
6
|
-
// Copyright © 2019 ab180. All rights reserved.
|
|
7
|
-
//
|
|
8
|
-
|
|
9
|
-
#import <Foundation/Foundation.h>
|
|
10
|
-
|
|
11
|
-
#import <AirBridge/ABState.h>
|
|
12
|
-
#import <AirBridge/ABDeeplink.h>
|
|
13
|
-
#import <AirBridge/ABSetting.h>
|
|
14
|
-
|
|
15
|
-
NS_ASSUME_NONNULL_BEGIN
|
|
16
|
-
|
|
17
|
-
@interface AirbridgeRN : NSObject
|
|
18
|
-
|
|
19
|
-
//
|
|
20
|
-
// init
|
|
21
|
-
//
|
|
22
|
-
|
|
23
|
-
/**
|
|
24
|
-
* Return singleton instance of AirbridgeRN
|
|
25
|
-
* @discussion this method return nil unless initialize Airbridge SDK
|
|
26
|
-
* @return singleton instance of AirbridgeRN
|
|
27
|
-
*/
|
|
28
|
-
+ (nullable AirbridgeRN*)instance;
|
|
29
|
-
|
|
30
|
-
/**
|
|
31
|
-
* Initialize Airbridge SDK and return singleton instance of AirbridgeRN
|
|
32
|
-
* @discussion You should call this method on application:didFinishLaunchingWithOptions:
|
|
33
|
-
*
|
|
34
|
-
* This method just return that when singleton instance of AirbridgeRN already exist
|
|
35
|
-
* @param appToken
|
|
36
|
-
* App Token
|
|
37
|
-
* @param appName
|
|
38
|
-
* App Name in English
|
|
39
|
-
* @param launchOptions
|
|
40
|
-
* Dictionary from application:didFinishLaunchingWithOptions:
|
|
41
|
-
* @return singleton instance of AirbridgeRN
|
|
42
|
-
*/
|
|
43
|
-
+ (AirbridgeRN*)getInstance:(NSString*)appToken appName:(NSString*)appName withLaunchOptions:(nullable NSDictionary*)launchOptions;
|
|
44
|
-
|
|
45
|
-
//
|
|
46
|
-
// interface
|
|
47
|
-
//
|
|
48
|
-
|
|
49
|
-
/**
|
|
50
|
-
* Return singleton instance of ABState
|
|
51
|
-
* @discussion you can modify user information manually with this instance
|
|
52
|
-
*
|
|
53
|
-
* this method never return nil
|
|
54
|
-
* @return singleton instance of ABState
|
|
55
|
-
*/
|
|
56
|
-
+ (ABState*)state;
|
|
57
|
-
|
|
58
|
-
/**
|
|
59
|
-
* Return singleton instance of ABDeeplink
|
|
60
|
-
* @discussion you can give deeplink information to Airbridge SDK with this instance
|
|
61
|
-
*
|
|
62
|
-
* this method never return nil
|
|
63
|
-
* @return singleton instance of ABDeeplink
|
|
64
|
-
*/
|
|
65
|
-
+ (ABDeeplink*)deeplink;
|
|
66
|
-
|
|
67
|
-
+ (ABSetting*)setting;
|
|
68
|
-
|
|
69
|
-
@end
|
|
70
|
-
|
|
71
|
-
NS_ASSUME_NONNULL_END
|
|
@@ -1,83 +0,0 @@
|
|
|
1
|
-
//
|
|
2
|
-
// AirbridgeRN.m
|
|
3
|
-
// AirbridgeRN
|
|
4
|
-
//
|
|
5
|
-
// Created by WOF on 17/04/2019.
|
|
6
|
-
// Copyright © 2019 ab180. All rights reserved.
|
|
7
|
-
//
|
|
8
|
-
|
|
9
|
-
#import "AirbridgeRN.h"
|
|
10
|
-
|
|
11
|
-
#import "AirbridgeAttribution.h"
|
|
12
|
-
#import "AirbridgeDeeplink.h"
|
|
13
|
-
|
|
14
|
-
// Airbridge
|
|
15
|
-
#import <AirBridge/AirBridge.h>
|
|
16
|
-
|
|
17
|
-
#import "ARNConfigReader.h"
|
|
18
|
-
|
|
19
|
-
@implementation AirbridgeRN
|
|
20
|
-
|
|
21
|
-
static AirbridgeRN* instance;
|
|
22
|
-
|
|
23
|
-
//
|
|
24
|
-
// init
|
|
25
|
-
//
|
|
26
|
-
|
|
27
|
-
+ (nullable AirbridgeRN*)instance {
|
|
28
|
-
return instance;
|
|
29
|
-
}
|
|
30
|
-
|
|
31
|
-
+ (AirbridgeRN*)getInstance:(NSString*)appToken
|
|
32
|
-
appName:(NSString*)appName
|
|
33
|
-
withLaunchOptions:(nullable NSDictionary*)launchOptions
|
|
34
|
-
{
|
|
35
|
-
NSString* path = [NSBundle.mainBundle pathForResource:@"airbridge" ofType:@"json"];
|
|
36
|
-
NSData* data = [NSData dataWithContentsOfFile:path];
|
|
37
|
-
NSDictionary* airbridgeJSON = nil;
|
|
38
|
-
if (data != nil) {
|
|
39
|
-
airbridgeJSON = [NSJSONSerialization JSONObjectWithData:data options:0 error:nil];
|
|
40
|
-
}
|
|
41
|
-
|
|
42
|
-
return [AirbridgeRN getInstance:appToken
|
|
43
|
-
appName:appName
|
|
44
|
-
withAirbridgeJSON:airbridgeJSON
|
|
45
|
-
withLaunchOptions:launchOptions];
|
|
46
|
-
}
|
|
47
|
-
|
|
48
|
-
+ (AirbridgeRN*)getInstance:(NSString*)appToken
|
|
49
|
-
appName:(NSString*)appName
|
|
50
|
-
withAirbridgeJSON:(nullable NSDictionary*)airbridgeJSON
|
|
51
|
-
withLaunchOptions:(nullable NSDictionary*)launchOptions
|
|
52
|
-
{
|
|
53
|
-
[ARNConfigReader apply:airbridgeJSON];
|
|
54
|
-
[AirBridge.state setSDKDevelopmentPlatform:@"react_native"];
|
|
55
|
-
[AirbridgeAttribution setInitialAttributionCallback];
|
|
56
|
-
|
|
57
|
-
[AirBridge getInstance:appToken appName:appName withLaunchOptions:launchOptions];
|
|
58
|
-
[AirbridgeDeeplink setInitialDeeplinkCallback];
|
|
59
|
-
|
|
60
|
-
if (instance != nil) {
|
|
61
|
-
instance = [[AirbridgeRN alloc] init];
|
|
62
|
-
}
|
|
63
|
-
|
|
64
|
-
return instance;
|
|
65
|
-
}
|
|
66
|
-
|
|
67
|
-
//
|
|
68
|
-
// interface
|
|
69
|
-
//
|
|
70
|
-
|
|
71
|
-
+ (ABState*)state {
|
|
72
|
-
return AirBridge.state;
|
|
73
|
-
}
|
|
74
|
-
|
|
75
|
-
+ (ABDeeplink*)deeplink {
|
|
76
|
-
return AirBridge.deeplink;
|
|
77
|
-
}
|
|
78
|
-
|
|
79
|
-
+ (ABSetting*)setting {
|
|
80
|
-
return AirBridge.setting;
|
|
81
|
-
}
|
|
82
|
-
|
|
83
|
-
@end
|
|
@@ -1,17 +0,0 @@
|
|
|
1
|
-
//
|
|
2
|
-
// AirbridgeState.h
|
|
3
|
-
// AirbridgeRN
|
|
4
|
-
//
|
|
5
|
-
// Created by WOF on 15/04/2019.
|
|
6
|
-
// Copyright © 2019 ab180. All rights reserved.
|
|
7
|
-
//
|
|
8
|
-
|
|
9
|
-
#import <React/RCTBridgeModule.h>
|
|
10
|
-
|
|
11
|
-
NS_ASSUME_NONNULL_BEGIN
|
|
12
|
-
|
|
13
|
-
@interface AirbridgeState : NSObject <RCTBridgeModule>
|
|
14
|
-
|
|
15
|
-
@end
|
|
16
|
-
|
|
17
|
-
NS_ASSUME_NONNULL_END
|
|
@@ -1,94 +0,0 @@
|
|
|
1
|
-
//
|
|
2
|
-
// AirbridgeState.m
|
|
3
|
-
// AirbridgeRN
|
|
4
|
-
//
|
|
5
|
-
// Created by WOF on 15/04/2019.
|
|
6
|
-
// Copyright © 2019 ab180. All rights reserved.
|
|
7
|
-
//
|
|
8
|
-
|
|
9
|
-
#import "AirbridgeState.h"
|
|
10
|
-
|
|
11
|
-
// Airbridge
|
|
12
|
-
#import <AirBridge/AirBridge.h>
|
|
13
|
-
|
|
14
|
-
#import "ARNGet.h"
|
|
15
|
-
#import "ARNHex.h"
|
|
16
|
-
|
|
17
|
-
@implementation AirbridgeState
|
|
18
|
-
|
|
19
|
-
//
|
|
20
|
-
// react native method
|
|
21
|
-
//
|
|
22
|
-
|
|
23
|
-
RCT_EXPORT_MODULE();
|
|
24
|
-
|
|
25
|
-
RCT_EXPORT_METHOD(setUser:(nullable NSDictionary*)user) {
|
|
26
|
-
NSString* ID = [ARNGet type:NSString.class dictionary:user key:@"ID"];
|
|
27
|
-
NSString* email = [ARNGet type:NSString.class dictionary:user key:@"email"];
|
|
28
|
-
NSString* phone = [ARNGet type:NSString.class dictionary:user key:@"phone"];
|
|
29
|
-
NSDictionary* alias = [ARNGet type:NSDictionary.class dictionary:user key:@"alias"];
|
|
30
|
-
NSDictionary* attributes = [ARNGet type:NSDictionary.class dictionary:user key:@"attributes"];
|
|
31
|
-
|
|
32
|
-
[AirBridge.state setUserID:ID];
|
|
33
|
-
[AirBridge.state setUserEmail:email];
|
|
34
|
-
[AirBridge.state setUserPhone:phone];
|
|
35
|
-
[AirBridge.state setUserAlias:alias];
|
|
36
|
-
[AirBridge.state setUserAttributes:attributes];
|
|
37
|
-
}
|
|
38
|
-
|
|
39
|
-
RCT_EXPORT_METHOD(updateUser:(nullable NSDictionary*)user) {
|
|
40
|
-
NSString* ID = [ARNGet type:NSString.class dictionary:user key:@"ID"];
|
|
41
|
-
NSString* email = [ARNGet type:NSString.class dictionary:user key:@"email"];
|
|
42
|
-
NSString* phone = [ARNGet type:NSString.class dictionary:user key:@"phone"];
|
|
43
|
-
NSDictionary* alias = [ARNGet type:NSDictionary.class dictionary:user key:@"alias"];
|
|
44
|
-
NSDictionary* attributes = [ARNGet type:NSDictionary.class dictionary:user key:@"attributes"];
|
|
45
|
-
|
|
46
|
-
if (ID) {
|
|
47
|
-
[AirBridge.state setUserID:ID];
|
|
48
|
-
}
|
|
49
|
-
if (email) {
|
|
50
|
-
[AirBridge.state setUserEmail:email];
|
|
51
|
-
}
|
|
52
|
-
if (phone) {
|
|
53
|
-
[AirBridge.state setUserPhone:phone];
|
|
54
|
-
}
|
|
55
|
-
if (alias) {
|
|
56
|
-
[AirBridge.state setUserAlias:alias];
|
|
57
|
-
}
|
|
58
|
-
if (attributes) {
|
|
59
|
-
[AirBridge.state setUserAttributes:attributes];
|
|
60
|
-
}
|
|
61
|
-
}
|
|
62
|
-
|
|
63
|
-
RCT_EXPORT_METHOD(deviceUUID: (RCTPromiseResolveBlock)resolve
|
|
64
|
-
rejecter: (RCTPromiseRejectBlock)reject)
|
|
65
|
-
{
|
|
66
|
-
resolve(AirBridge.deviceUUID);
|
|
67
|
-
}
|
|
68
|
-
|
|
69
|
-
RCT_EXPORT_METHOD(startTracking) {
|
|
70
|
-
[AirBridge startTracking];
|
|
71
|
-
}
|
|
72
|
-
|
|
73
|
-
RCT_EXPORT_METHOD(setDeviceAlias:(nullable NSString*)key value:(nullable NSString*)value) {
|
|
74
|
-
[AirBridge.state setDeviceAliasWithKey:key value:value];
|
|
75
|
-
}
|
|
76
|
-
|
|
77
|
-
RCT_EXPORT_METHOD(removeDeviceAlias:(nullable NSString*)key) {
|
|
78
|
-
[AirBridge.state removeDeviceAliasWithKey:key];
|
|
79
|
-
}
|
|
80
|
-
|
|
81
|
-
RCT_EXPORT_METHOD(clearDeviceAlias) {
|
|
82
|
-
[AirBridge.state clearDeviceAlias];
|
|
83
|
-
}
|
|
84
|
-
|
|
85
|
-
RCT_EXPORT_METHOD(registerPushToken:(nullable NSString*)token) {
|
|
86
|
-
if (token == nil) return;
|
|
87
|
-
|
|
88
|
-
NSData* data = [ARNHex dataFromHexString:token];
|
|
89
|
-
if (data == nil) return;
|
|
90
|
-
|
|
91
|
-
[AirBridge registerPushToken:data];
|
|
92
|
-
}
|
|
93
|
-
|
|
94
|
-
@end
|