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.
Files changed (270) hide show
  1. package/.github/workflows/build.yml +249 -159
  2. package/.github/workflows/documentation.yml +79 -0
  3. package/.github/workflows/qa.yml +187 -0
  4. package/.github/workflows/release.yml +26 -0
  5. package/airbridge-react-native-sdk-restricted.podspec +10 -7
  6. package/airbridge_sdk.json +4 -0
  7. package/android/build.gradle +22 -5
  8. package/android/{copy-config.gradle → copy-airbridge-json.gradle} +2 -2
  9. package/android/src/main/java/co/ab180/airbridge/reactnative/AirbridgeReactNative.kt +153 -0
  10. package/android/src/main/java/co/ab180/airbridge/reactnative/common/AirbridgeLifecycleIntegration.kt +7 -0
  11. package/android/src/main/java/co/ab180/airbridge/reactnative/extension/AirbridgeOptionBuilderApply.kt +79 -0
  12. package/android/src/main/java/co/ab180/airbridge/reactnative/extension/JSONConvert.kt +33 -0
  13. package/android/src/main/java/co/ab180/airbridge/reactnative/module/AttributionInteractor.kt +54 -0
  14. package/android/src/main/java/co/ab180/airbridge/reactnative/module/DeeplinkInteractor.kt +45 -0
  15. package/android/src/main/java/co/ab180/airbridge/reactnative/module/EventInteractor.kt +22 -0
  16. package/android/src/main/java/co/ab180/airbridge/reactnative/module/FetchInteractor.kt +51 -0
  17. package/android/src/main/java/co/ab180/airbridge/reactnative/module/PlacementInteractor.kt +56 -0
  18. package/android/src/main/java/co/ab180/airbridge/reactnative/module/RegisterInteractor.kt +108 -0
  19. package/android/src/main/java/co/ab180/airbridge/reactnative/module/SwitchInteractor.kt +43 -0
  20. package/android/src/main/java/co/ab180/airbridge/reactnative/module/WebInterfaceInteractor.kt +24 -0
  21. package/build/document/.nojekyll +1 -0
  22. package/build/document/assets/highlight.css +22 -0
  23. package/build/document/assets/icons.js +18 -0
  24. package/build/document/assets/icons.svg +1 -0
  25. package/build/document/assets/main.js +60 -0
  26. package/build/document/assets/navigation.js +1 -0
  27. package/build/document/assets/search.js +1 -0
  28. package/build/document/assets/style.css +1448 -0
  29. package/build/document/classes/Airbridge.html +113 -0
  30. package/build/document/classes/AirbridgeAttribute.html +49 -0
  31. package/build/document/classes/AirbridgeCategory.html +28 -0
  32. package/build/document/index.html +8 -0
  33. package/build/document/modules.html +4 -0
  34. package/build/source/Airbridge.d.ts +230 -0
  35. package/build/source/Airbridge.js +277 -0
  36. package/build/source/Airbridge.js.map +1 -0
  37. package/build/source/architecture/Interactor.d.ts +2 -0
  38. package/build/source/architecture/Interactor.js +7 -0
  39. package/build/source/architecture/Interactor.js.map +1 -0
  40. package/build/source/architecture/module.d.ts +1 -0
  41. package/build/source/architecture/module.js +2 -0
  42. package/build/source/architecture/module.js.map +1 -0
  43. package/build/source/constant/AirbridgeAttribute.d.ts +51 -0
  44. package/build/source/constant/AirbridgeAttribute.js +144 -0
  45. package/build/source/constant/AirbridgeAttribute.js.map +1 -0
  46. package/build/source/constant/AirbridgeCategory.d.ts +30 -0
  47. package/build/source/constant/AirbridgeCategory.js +81 -0
  48. package/build/source/constant/AirbridgeCategory.js.map +1 -0
  49. package/build/source/module/Attribution.d.ts +16 -0
  50. package/build/source/module/Attribution.js +39 -0
  51. package/build/source/module/Attribution.js.map +1 -0
  52. package/build/source/module/Deeplink.d.ts +17 -0
  53. package/build/source/module/Deeplink.js +40 -0
  54. package/build/source/module/Deeplink.js.map +1 -0
  55. package/build/source/module/Event.d.ts +14 -0
  56. package/build/source/module/Event.js +50 -0
  57. package/build/source/module/Event.js.map +1 -0
  58. package/build/source/module/Fetch.d.ts +19 -0
  59. package/build/source/module/Fetch.js +100 -0
  60. package/build/source/module/Fetch.js.map +1 -0
  61. package/build/source/module/Placement.d.ts +18 -0
  62. package/build/source/module/Placement.js +95 -0
  63. package/build/source/module/Placement.js.map +1 -0
  64. package/build/source/module/Register.d.ts +49 -0
  65. package/build/source/module/Register.js +138 -0
  66. package/build/source/module/Register.js.map +1 -0
  67. package/build/source/module/Switch.d.ts +24 -0
  68. package/build/source/module/Switch.js +39 -0
  69. package/build/source/module/Switch.js.map +1 -0
  70. package/build/source/module/WebInterface.d.ts +16 -0
  71. package/build/source/module/WebInterface.js +46 -0
  72. package/build/source/module/WebInterface.js.map +1 -0
  73. package/build/source/module.d.ts +3 -0
  74. package/build/source/module.js +4 -0
  75. package/build/source/module.js.map +1 -0
  76. package/build/source/utility/check.d.ts +13 -0
  77. package/build/source/utility/check.js +15 -0
  78. package/build/source/utility/check.js.map +1 -0
  79. package/build/source/utility/compute.d.ts +3 -0
  80. package/build/source/utility/compute.js +5 -0
  81. package/build/source/utility/compute.js.map +1 -0
  82. package/build/source/utility/create.d.ts +5 -0
  83. package/build/source/utility/create.js +12 -0
  84. package/build/source/utility/create.js.map +1 -0
  85. package/build/source/utility/extract.d.ts +3 -0
  86. package/build/source/utility/extract.js +4 -0
  87. package/build/source/utility/extract.js.map +1 -0
  88. package/build/source/utility/json.d.ts +11 -0
  89. package/build/source/utility/json.js +137 -0
  90. package/build/source/utility/json.js.map +1 -0
  91. package/build/source/utility/log.d.ts +4 -0
  92. package/build/source/utility/log.js +9 -0
  93. package/build/source/utility/log.js.map +1 -0
  94. package/changelog.md +14 -3
  95. package/ios/AirbridgeReactNative/AirbridgeReactNative.h +23 -0
  96. package/ios/AirbridgeReactNative/AirbridgeReactNative.m +36 -0
  97. package/ios/AirbridgeReactNative/AirbridgeReactNative.swift +107 -0
  98. package/ios/AirbridgeReactNative/Extension/AirbridgeOptionBuilderApply.swift +86 -0
  99. package/ios/AirbridgeReactNative/Extension/DataFromHex.swift +21 -0
  100. package/ios/AirbridgeReactNative/Extension/Logger.swift +62 -0
  101. package/ios/AirbridgeReactNative/Module/AirbridgeModuleExtern.m +133 -0
  102. package/ios/AirbridgeReactNative/Module/AttributionInteractor.swift +43 -0
  103. package/ios/AirbridgeReactNative/Module/DeeplinkInteractor.swift +49 -0
  104. package/ios/AirbridgeReactNative/Module/EventInteractor.swift +26 -0
  105. package/ios/AirbridgeReactNative/Module/FetchInteractor.swift +66 -0
  106. package/ios/AirbridgeReactNative/Module/PlacementInteractor.swift +72 -0
  107. package/ios/AirbridgeReactNative/Module/RegisterInteractor.swift +104 -0
  108. package/ios/AirbridgeReactNative/Module/SwitchInteractor.swift +48 -0
  109. package/ios/AirbridgeReactNative/Module/WebInterfaceInteractor.swift +30 -0
  110. package/ios/{copy-config.rb → copy-airbridge-json.rb} +1 -1
  111. package/package.json +18 -27
  112. package/qa/Gemfile +3 -4
  113. package/qa/Gemfile.lock +28 -17
  114. package/qa/airbridge_qa.json +6 -0
  115. package/qa/android/app/build.gradle +30 -26
  116. package/qa/android/app/src/main/AndroidManifest.xml +182 -7
  117. package/qa/android/app/src/main/java/co/ab180/airbridge/qa/application/ConfigurationLoader.kt +5 -5
  118. package/qa/android/app/src/main/java/co/ab180/airbridge/qa/application/MainActivity.kt +2 -2
  119. package/qa/android/app/src/main/java/co/ab180/airbridge/qa/application/module/IdentifiersInteractor.kt +8 -17
  120. package/qa/android/app/src/main/java/co/ab180/airbridge/qa/application/module/InstallReferrerInteractor.kt +13 -22
  121. package/qa/android/app/src/main/java/co/ab180/airbridge/qa/application/module/ModuleInjector.kt +1 -2
  122. package/qa/android/app/src/main/res/values/airbridge.xml +16 -0
  123. package/qa/android/build.gradle +4 -2
  124. package/qa/android/gradle/wrapper/gradle-wrapper.properties +1 -1
  125. package/qa/android/gradle.properties +0 -2
  126. package/qa/android/gradlew +1 -1
  127. package/qa/android/settings.gradle +3 -1
  128. package/qa/ios/AirbridgeQA/AirbridgeQA.entitlements +12 -0
  129. package/qa/ios/AirbridgeQA/AppDelegate.mm +40 -30
  130. package/qa/ios/AirbridgeQA/DeviceInfoInteractor.swift +0 -1
  131. package/qa/ios/AirbridgeQA/IdentifiersInteractor.swift +4 -8
  132. package/qa/ios/AirbridgeQA/Images.xcassets/AppIcon.appiconset/AppIcon-20@2x.png +0 -0
  133. package/qa/ios/AirbridgeQA/Images.xcassets/AppIcon.appiconset/AppIcon-20@2x~ipad.png +0 -0
  134. package/qa/ios/AirbridgeQA/Images.xcassets/AppIcon.appiconset/AppIcon-20@3x.png +0 -0
  135. package/qa/ios/AirbridgeQA/Images.xcassets/AppIcon.appiconset/AppIcon-20~ipad.png +0 -0
  136. package/qa/ios/AirbridgeQA/Images.xcassets/AppIcon.appiconset/AppIcon-29.png +0 -0
  137. package/qa/ios/AirbridgeQA/Images.xcassets/AppIcon.appiconset/AppIcon-29@2x.png +0 -0
  138. package/qa/ios/AirbridgeQA/Images.xcassets/AppIcon.appiconset/AppIcon-29@2x~ipad.png +0 -0
  139. package/qa/ios/AirbridgeQA/Images.xcassets/AppIcon.appiconset/AppIcon-29@3x.png +0 -0
  140. package/qa/ios/AirbridgeQA/Images.xcassets/AppIcon.appiconset/AppIcon-29~ipad.png +0 -0
  141. package/qa/ios/AirbridgeQA/Images.xcassets/AppIcon.appiconset/AppIcon-40@2x.png +0 -0
  142. package/qa/ios/AirbridgeQA/Images.xcassets/AppIcon.appiconset/AppIcon-40@2x~ipad.png +0 -0
  143. package/qa/ios/AirbridgeQA/Images.xcassets/AppIcon.appiconset/AppIcon-40@3x.png +0 -0
  144. package/qa/ios/AirbridgeQA/Images.xcassets/AppIcon.appiconset/AppIcon-40~ipad.png +0 -0
  145. package/qa/ios/AirbridgeQA/Images.xcassets/AppIcon.appiconset/AppIcon-60@2x~car.png +0 -0
  146. package/qa/ios/AirbridgeQA/Images.xcassets/AppIcon.appiconset/AppIcon-60@3x~car.png +0 -0
  147. package/qa/ios/AirbridgeQA/Images.xcassets/AppIcon.appiconset/AppIcon-83.5@2x~ipad.png +0 -0
  148. package/qa/ios/AirbridgeQA/Images.xcassets/AppIcon.appiconset/AppIcon@2x.png +0 -0
  149. package/qa/ios/AirbridgeQA/Images.xcassets/AppIcon.appiconset/AppIcon@2x~ipad.png +0 -0
  150. package/qa/ios/AirbridgeQA/Images.xcassets/AppIcon.appiconset/AppIcon@3x.png +0 -0
  151. package/qa/ios/AirbridgeQA/Images.xcassets/AppIcon.appiconset/AppIcon~ios-marketing.png +0 -0
  152. package/qa/ios/AirbridgeQA/Images.xcassets/AppIcon.appiconset/AppIcon~ipad.png +0 -0
  153. package/qa/ios/AirbridgeQA/Images.xcassets/AppIcon.appiconset/Contents.json +113 -32
  154. package/qa/ios/AirbridgeQA/Info.plist +8 -0
  155. package/qa/ios/AirbridgeQA.xcodeproj/project.pbxproj +47 -29
  156. package/qa/ios/InternalLibrary/airbridge-ios-sdk-qa-library.podspec +32 -0
  157. package/qa/ios/InternalLibrary/airbridge-ios-sdk-restricted.podspec +32 -0
  158. package/qa/ios/Library/airbridge-ios-sdk-qa-library.podspec +6 -1
  159. package/qa/ios/Podfile +13 -1
  160. package/qa/ios/Podfile.lock +689 -316
  161. package/qa/ios/Script/prepare-build-parameter.rb +23 -0
  162. package/qa/metro.config.js +5 -2
  163. package/qa/package-lock.json +3369 -1433
  164. package/qa/package.json +30 -30
  165. package/qa/source/App.js +13 -6
  166. package/qa/source/common/FCMService.js +39 -15
  167. package/qa/source/common/QALog.js +12 -0
  168. package/qa/source/navigations/Stack.js +8 -1
  169. package/qa/source/pages/AppInfo.js +40 -0
  170. package/qa/source/pages/Browse.js +16 -19
  171. package/qa/source/pages/DeviceInfo.js +10 -4
  172. package/qa/source/pages/Event.js +70 -60
  173. package/qa/source/pages/Home.js +77 -17
  174. package/qa/source/pages/Identifiers.js +10 -6
  175. package/qa/source/pages/Placement.js +3 -3
  176. package/qa/source/pages/Skad.js +76 -0
  177. package/qa/source/pages/UserInfo.js +47 -28
  178. package/readme.md +6 -6
  179. package/script/BuildDocument.sh +10 -0
  180. package/{scripts/build-qa.sh → script/BuildQA.sh} +5 -4
  181. package/script/BuildSource.sh +14 -0
  182. package/script/ChangeInternalSDK.sh +22 -0
  183. package/script/ChangeProductionSDK.sh +39 -0
  184. package/script/ChangeRestricted.sh +34 -0
  185. package/script/PrepareBuildParameter.sh +28 -0
  186. package/source/Airbridge.ts +340 -0
  187. package/source/architecture/Interactor.ts +10 -0
  188. package/source/architecture/module.ts +1 -0
  189. package/source/constant/AirbridgeAttribute.ts +188 -0
  190. package/source/constant/AirbridgeCategory.ts +104 -0
  191. package/source/module/Attribution.ts +4 -8
  192. package/source/module/Deeplink.ts +59 -0
  193. package/source/module/Event.ts +71 -0
  194. package/source/module/Fetch.ts +137 -0
  195. package/source/module/Placement.ts +134 -0
  196. package/source/module/Register.ts +203 -0
  197. package/source/module/Switch.ts +61 -0
  198. package/source/module/WebInterface.ts +55 -0
  199. package/source/module.ts +3 -0
  200. package/source/tsconfig.json +14 -0
  201. package/source/utility/check.ts +46 -0
  202. package/source/utility/compute.ts +9 -0
  203. package/source/utility/create.ts +12 -0
  204. package/source/utility/extract.ts +5 -0
  205. package/source/utility/json.ts +180 -0
  206. package/source/utility/log.ts +14 -0
  207. package/test/jest.json +13 -0
  208. package/test/mock.ts +112 -0
  209. package/test/module/Deeplink.test.ts +29 -0
  210. package/test/tsconfig.json +8 -0
  211. package/.eslintrc.json +0 -44
  212. package/.gitattributes +0 -1
  213. package/.github/actions/add-github-check/action.yml +0 -78
  214. package/.github/actions/add-github-comment/action.yml +0 -48
  215. package/.github/actions/add-slack-message/action.yml +0 -32
  216. package/.github/actions/edit-github-check/action.yml +0 -59
  217. package/.github/actions/edit-github-comment/action.yml +0 -41
  218. package/.github/workflows/release-restricted.yml +0 -35
  219. package/android/src/main/java/co/ab180/airbridge/reactnative/AirbridgeAttribution.java +0 -78
  220. package/android/src/main/java/co/ab180/airbridge/reactnative/AirbridgeDeeplink.java +0 -97
  221. package/android/src/main/java/co/ab180/airbridge/reactnative/AirbridgeEvent.java +0 -76
  222. package/android/src/main/java/co/ab180/airbridge/reactnative/AirbridgeLifecycle.java +0 -31
  223. package/android/src/main/java/co/ab180/airbridge/reactnative/AirbridgeLifecycleIntegration.java +0 -8
  224. package/android/src/main/java/co/ab180/airbridge/reactnative/AirbridgePlacement.java +0 -42
  225. package/android/src/main/java/co/ab180/airbridge/reactnative/AirbridgeRN.java +0 -112
  226. package/android/src/main/java/co/ab180/airbridge/reactnative/AirbridgeState.java +0 -174
  227. package/android/src/main/java/co/ab180/airbridge/reactnative/ConfigReader.java +0 -154
  228. package/android/src/main/java/co/ab180/airbridge/reactnative/Get.java +0 -84
  229. package/index.d.ts +0 -338
  230. package/index.js +0 -8
  231. package/ios/AirbridgeRN/ARNConfigReader.h +0 -19
  232. package/ios/AirbridgeRN/ARNConfigReader.m +0 -80
  233. package/ios/AirbridgeRN/ARNGet.h +0 -20
  234. package/ios/AirbridgeRN/ARNGet.m +0 -40
  235. package/ios/AirbridgeRN/ARNHex.h +0 -16
  236. package/ios/AirbridgeRN/ARNHex.m +0 -44
  237. package/ios/AirbridgeRN/AirbridgeAttribution.h +0 -19
  238. package/ios/AirbridgeRN/AirbridgeAttribution.m +0 -47
  239. package/ios/AirbridgeRN/AirbridgeDeeplink.h +0 -20
  240. package/ios/AirbridgeRN/AirbridgeDeeplink.m +0 -59
  241. package/ios/AirbridgeRN/AirbridgeEvent.h +0 -17
  242. package/ios/AirbridgeRN/AirbridgeEvent.m +0 -63
  243. package/ios/AirbridgeRN/AirbridgePlacement.h +0 -17
  244. package/ios/AirbridgeRN/AirbridgePlacement.m +0 -38
  245. package/ios/AirbridgeRN/AirbridgeRN.h +0 -71
  246. package/ios/AirbridgeRN/AirbridgeRN.m +0 -83
  247. package/ios/AirbridgeRN/AirbridgeState.h +0 -17
  248. package/ios/AirbridgeRN/AirbridgeState.m +0 -94
  249. package/ios/AirbridgeRN.xcodeproj/project.pbxproj +0 -417
  250. package/qa/android/app/src/main/java/co/ab180/airbridge/qa/application/module/UserInfoInteractor.kt +0 -74
  251. package/qa/ios/AirbridgeQA/UserInfoInteractor.m +0 -57
  252. package/qa/ios/AirbridgeQA/UserInfoInteractor.swift +0 -49
  253. package/qa/source/pages/appInfo.js +0 -22
  254. package/scripts/addiOSFramework.js +0 -48
  255. package/scripts/change_restricted.sh +0 -21
  256. package/scripts/update_native_version.sh +0 -104
  257. package/src/Airbridge.js +0 -82
  258. package/src/Deeplink.js +0 -75
  259. package/src/Event.js +0 -38
  260. package/src/Placement.js +0 -56
  261. package/src/State.js +0 -175
  262. package/src/WebInterface.js +0 -135
  263. package/src/tool/Log.js +0 -40
  264. package/src/tool/_.js +0 -56
  265. package/src/type/AirbridgeAttributes.js +0 -40
  266. package/src/type/AirbridgeCategory.js +0 -35
  267. package/src/type/AirbridgeProduct.js +0 -18
  268. package/src/typedef/EventOption.js +0 -9
  269. package/src/typedef/Product.js +0 -10
  270. 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