@tyrads.com/tyrads-sdk 1.1.6-beta.2 → 1.1.6-beta.6

Sign up to get free protection for your applications and to get access to all the features.
@@ -95,7 +95,7 @@ dependencies {
95
95
  //noinspection GradleDynamicVersion
96
96
  implementation "com.facebook.react:react-native:+"
97
97
  implementation "org.jetbrains.kotlin:kotlin-stdlib:$kotlin_version"
98
- implementation ("com.github.tyrads-com:tyrads-sdk-android:02acdcda61")
98
+ implementation ("com.github.tyrads-com:tyrads-sdk-android:317a555418")
99
99
 
100
100
  }
101
101
 
@@ -22,7 +22,7 @@ class TyradsSdkModule(reactContext: ReactApplicationContext) :
22
22
  promise.reject("INIT_ERROR", e.message)
23
23
  }
24
24
  }
25
-
25
+
26
26
  @ReactMethod
27
27
  fun loginUser(userId: String, promise: Promise) {
28
28
  try {
@@ -32,10 +32,9 @@ class TyradsSdkModule(reactContext: ReactApplicationContext) :
32
32
  promise.reject("LOGIN_ERROR", e.message)
33
33
  }
34
34
  }
35
-
36
35
  @ReactMethod
37
- fun showOffers() {
38
- Tyrads.getInstance().showOffers()
36
+ fun showOffers(route: String? = null, campaignID: Int? = null) {
37
+ Tyrads.getInstance().showOffers(route = route, campaignID = campaignID)
39
38
  }
40
39
 
41
40
  companion object {
@@ -2,6 +2,7 @@ import Foundation
2
2
  import UIKit
3
3
  import AppTrackingTransparency
4
4
  import AdSupport
5
+ import WebKit
5
6
 
6
7
 
7
8
 
@@ -41,7 +42,7 @@ public class Tyrads {
41
42
  @objc public func loginUser(_ userID: String? = nil) {
42
43
  do {
43
44
  let userId = userID ?? UserDefaults.standard.string(forKey: "acmo-tyrads-sdk-user-id") ?? ""
44
-
45
+
45
46
  let identifierType = "IDFA"
46
47
  var advertisingId = ""
47
48
  if #available(iOS 14, *) {
@@ -74,14 +75,14 @@ public class Tyrads {
74
75
  "identifierType": identifierType,
75
76
  "identifier": advertisingId
76
77
  ]
77
-
78
+
78
79
  log("Initializing with data: \(fd)")
79
-
80
+
80
81
  guard let url = URL(string: AcmoConfig.BASE_URL + "initialize") else {
81
82
  log("Failed to create URL")
82
83
  return
83
84
  }
84
-
85
+
85
86
  var request = URLRequest(url: url)
86
87
  request.httpMethod = "POST"
87
88
  request.setValue(AcmoConfig.SDK_PLATFORM, forHTTPHeaderField: "X-SDK-Platform")
@@ -89,29 +90,29 @@ public class Tyrads {
89
90
  request.setValue("application/json", forHTTPHeaderField: "Content-Type")
90
91
  request.setValue(self.apiKey, forHTTPHeaderField: "X-API-Key")
91
92
  request.setValue(self.apiSecret, forHTTPHeaderField: "X-API-Secret")
92
-
93
+
93
94
  do {
94
95
  request.httpBody = try JSONSerialization.data(withJSONObject: fd)
95
96
  } catch {
96
97
  log("Failed to serialize request body: \(error)")
97
98
  return
98
99
  }
99
-
100
+
100
101
  let task = URLSession.shared.dataTask(with: request) { data, response, error in
101
-
102
+
102
103
  if let error = error {
103
104
  self.log("Network request failed: \(error)")
104
105
  return
105
106
  }
106
-
107
+
107
108
  guard let data = data else {
108
109
  self.log("No data received from the server")
109
110
  return
110
111
  }
111
-
112
+
112
113
  if let responseString = String(data: data, encoding: .utf8) {
113
114
  self.log("Received response: \(responseString)")
114
-
115
+
115
116
  let jsonData = responseString.data(using: .utf8)!
116
117
  let decoder = JSONDecoder()
117
118
  guard let acmoInitModel = try? decoder.decode(AcmoInitModel.self, from: jsonData) else {
@@ -124,14 +125,14 @@ public class Tyrads {
124
125
  self.log("Login successful. Publisher User ID: \(self.publisherUserID), New User: \(self.newUser)")
125
126
  self.initializationWait.signal()
126
127
  }
127
-
128
-
128
+
129
+
129
130
  }
130
-
131
+
131
132
  task.resume()
132
133
  log("Network request started")
133
134
 
134
-
135
+
135
136
  } catch {
136
137
  log("An error occurred: \(error)")
137
138
  }
@@ -139,13 +140,37 @@ public class Tyrads {
139
140
 
140
141
 
141
142
 
142
- /// Shows the Tyrads offer wall.
143
- @objc public func showOffers() {
143
+
144
+ public func showOffers(_ launchMode: Int = 3, route: String? = nil, campaignID: Int? = nil) {
144
145
  self.initializationWait.wait()
145
- let urlString: String = "https://websdk.tyrads.com/?apiKey=\(Tyrads.instance.apiKey)&apiSecret=\(Tyrads.instance.apiSecret)&userID=\(Tyrads.instance.publisherUserID)&newUser=\(Tyrads.instance.newUser)&platform=\(AcmoConfig.SDK_PLATFORM)&hc=\(Tyrads.instance.loginData?.data.publisherApp.headerColor ?? "")&mc=\(Tyrads.instance.loginData?.data.publisherApp.mainColor ?? "")";
146
+ var urlString =
147
+ "https://websdk.tyrads.com/?apiKey=\(Tyrads.instance.apiKey)&apiSecret=\(Tyrads.instance.apiSecret)&userID=\(Tyrads.instance.publisherUserID)&newUser=\(Tyrads.instance.newUser)&platform=\(AcmoConfig.SDK_PLATFORM)&hc=\(Tyrads.instance.loginData?.data.publisherApp.headerColor ?? "")&mc=\(Tyrads.instance.loginData?.data.publisherApp.mainColor ?? "")&launchMode=\(launchMode)&route=\(route ?? "")&campaignID=\(campaignID)"
148
+
146
149
 
147
150
  if let url = URL(string: urlString) {
148
- UIApplication.shared.open(url, options: [:], completionHandler: { _ in })
151
+ switch launchMode {
152
+ case 1, 2:
153
+ DispatchQueue.main.async {
154
+ let webView = WKWebView(frame: UIScreen.main.bounds)
155
+ webView.load(URLRequest(url: url))
156
+
157
+ let viewController = UIViewController()
158
+ viewController.view = webView
159
+ viewController.modalPresentationStyle = .fullScreen // Add this line to set the presentation style
160
+
161
+ if let rootViewController = UIApplication.shared.windows.first?.rootViewController {
162
+ rootViewController.present(viewController, animated: true, completion: nil)
163
+ }
164
+ }
165
+ case 3:
166
+ DispatchQueue.main.async {
167
+ UIApplication.shared.open(url, options: [:], completionHandler: nil)
168
+ }
169
+ default:
170
+ DispatchQueue.main.async {
171
+ UIApplication.shared.open(url, options: [:], completionHandler: nil)
172
+ }
173
+ }
149
174
  }
150
175
  }
151
176
  }
package/ios/TyradsSdk.mm CHANGED
@@ -4,6 +4,8 @@
4
4
 
5
5
  RCT_EXTERN_METHOD(init:(NSString *)apiKey secretKey:(NSString *)secretKey)
6
6
  RCT_EXTERN_METHOD(loginUser:(NSString *)userId)
7
- RCT_EXTERN_METHOD(showOffers)
7
+ RCT_EXTERN_METHOD(showOffers:(NSInteger)launchMode
8
+ route:(NSString)route
9
+ campaignID:(NSInteger)campaignID)
8
10
 
9
11
  @end
@@ -18,9 +18,10 @@ class TyradsSdk: NSObject {
18
18
  // Implement your login logic here
19
19
  }
20
20
 
21
- @objc
22
- func showOffers() {
21
+
22
+ @objc func showOffers(_ launchMode: Int = 3, route: String? = nil, campaignID: Int = 0) {
23
23
  NSLog("TyradsModule: showOffers called")
24
- Tyrads.instance.showOffers()
25
- }
24
+ Tyrads.instance.showOffers(launchMode, route: route, campaignID: campaignID == 0 ? nil : campaignID )
25
+ }
26
+
26
27
  }
@@ -9,10 +9,29 @@ const LINKING_ERROR = `The package 'tyrads-sdk' doesn't seem to be linked. Make
9
9
  ios: "- You have run 'pod install'\n",
10
10
  default: ''
11
11
  }) + '- You rebuilt the app after installing the package\n' + '- You are not using Expo Go\n';
12
- const Tyrads = _reactNative.NativeModules.TyradsSdk ? _reactNative.NativeModules.TyradsSdk : new Proxy({}, {
12
+ const TyradsSdk = _reactNative.NativeModules.TyradsSdk ? _reactNative.NativeModules.TyradsSdk : new Proxy({}, {
13
13
  get() {
14
14
  throw new Error(LINKING_ERROR);
15
15
  }
16
16
  });
17
+ const Tyrads = {
18
+ init: (apiKey, apiSecret) => {
19
+ return TyradsSdk.init(apiKey, apiSecret);
20
+ },
21
+ loginUser: userId => {
22
+ return TyradsSdk.loginUser(userId);
23
+ },
24
+ showOffers: ({
25
+ launchMode = 3,
26
+ route,
27
+ campaignID = 0
28
+ } = {}) => {
29
+ if (_reactNative.Platform.OS === 'ios') {
30
+ return TyradsSdk.showOffers(launchMode, route, campaignID);
31
+ } else {
32
+ return TyradsSdk.showOffers(route, campaignID);
33
+ }
34
+ }
35
+ };
17
36
  var _default = exports.default = Tyrads;
18
37
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"names":["_reactNative","require","LINKING_ERROR","Platform","select","ios","default","Tyrads","NativeModules","TyradsSdk","Proxy","get","Error","_default","exports"],"sourceRoot":"../../src","sources":["index.tsx"],"mappings":";;;;;;AAAA,IAAAA,YAAA,GAAAC,OAAA;AAEA,MAAMC,aAAa,GACjB,qEAAqE,GACrEC,qBAAQ,CAACC,MAAM,CAAC;EAAEC,GAAG,EAAE,gCAAgC;EAAEC,OAAO,EAAE;AAAG,CAAC,CAAC,GACvE,sDAAsD,GACtD,+BAA+B;AAEjC,MAAMC,MAAM,GAAGC,0BAAa,CAACC,SAAS,GAClCD,0BAAa,CAACC,SAAS,GACvB,IAAIC,KAAK,CACP,CAAC,CAAC,EACF;EACEC,GAAGA,CAAA,EAAG;IACJ,MAAM,IAAIC,KAAK,CAACV,aAAa,CAAC;EAChC;AACF,CACF,CAAC;AAAC,IAAAW,QAAA,GAAAC,OAAA,CAAAR,OAAA,GACSC,MAAM","ignoreList":[]}
1
+ {"version":3,"names":["_reactNative","require","LINKING_ERROR","Platform","select","ios","default","TyradsSdk","NativeModules","Proxy","get","Error","Tyrads","init","apiKey","apiSecret","loginUser","userId","showOffers","launchMode","route","campaignID","OS","_default","exports"],"sourceRoot":"../../src","sources":["index.tsx"],"mappings":";;;;;;AAAA,IAAAA,YAAA,GAAAC,OAAA;AAEA,MAAMC,aAAa,GACjB,qEAAqE,GACrEC,qBAAQ,CAACC,MAAM,CAAC;EAAEC,GAAG,EAAE,gCAAgC;EAAEC,OAAO,EAAE;AAAG,CAAC,CAAC,GACvE,sDAAsD,GACtD,+BAA+B;AAEjC,MAAMC,SAAS,GAAGC,0BAAa,CAACD,SAAS,GACrCC,0BAAa,CAACD,SAAS,GACvB,IAAIE,KAAK,CACP,CAAC,CAAC,EACF;EACEC,GAAGA,CAAA,EAAG;IACJ,MAAM,IAAIC,KAAK,CAACT,aAAa,CAAC;EAChC;AACF,CACF,CAAC;AAEL,MAAMU,MAAM,GAAG;EACbC,IAAI,EAAEA,CAACC,MAAc,EAAEC,SAAiB,KAAK;IAC3C,OAAOR,SAAS,CAACM,IAAI,CAACC,MAAM,EAAEC,SAAS,CAAC;EAC1C,CAAC;EACDC,SAAS,EAAGC,MAAc,IAAK;IAC7B,OAAOV,SAAS,CAACS,SAAS,CAACC,MAAM,CAAC;EACpC,CAAC;EACDC,UAAU,EAAEA,CAAC;IACXC,UAAU,GAAG,CAAC;IACdC,KAAK;IACLC,UAAU,GAAG;EAC+C,CAAC,GAAG,CAAC,CAAC,KAAK;IACvE,IAAIlB,qBAAQ,CAACmB,EAAE,KAAK,KAAK,EAAE;MACzB,OAAOf,SAAS,CAACW,UAAU,CAACC,UAAU,EAAEC,KAAK,EAAEC,UAAU,CAAC;IAC5D,CAAC,MAAM;MACL,OAAOd,SAAS,CAACW,UAAU,CAACE,KAAK,EAAEC,UAAU,CAAC;IAChD;EACF;AACF,CAAC;AAAC,IAAAE,QAAA,GAAAC,OAAA,CAAAlB,OAAA,GAEaM,MAAM","ignoreList":[]}
@@ -5,10 +5,29 @@ const LINKING_ERROR = `The package 'tyrads-sdk' doesn't seem to be linked. Make
5
5
  ios: "- You have run 'pod install'\n",
6
6
  default: ''
7
7
  }) + '- You rebuilt the app after installing the package\n' + '- You are not using Expo Go\n';
8
- const Tyrads = NativeModules.TyradsSdk ? NativeModules.TyradsSdk : new Proxy({}, {
8
+ const TyradsSdk = NativeModules.TyradsSdk ? NativeModules.TyradsSdk : new Proxy({}, {
9
9
  get() {
10
10
  throw new Error(LINKING_ERROR);
11
11
  }
12
12
  });
13
+ const Tyrads = {
14
+ init: (apiKey, apiSecret) => {
15
+ return TyradsSdk.init(apiKey, apiSecret);
16
+ },
17
+ loginUser: userId => {
18
+ return TyradsSdk.loginUser(userId);
19
+ },
20
+ showOffers: ({
21
+ launchMode = 3,
22
+ route,
23
+ campaignID = 0
24
+ } = {}) => {
25
+ if (Platform.OS === 'ios') {
26
+ return TyradsSdk.showOffers(launchMode, route, campaignID);
27
+ } else {
28
+ return TyradsSdk.showOffers(route, campaignID);
29
+ }
30
+ }
31
+ };
13
32
  export default Tyrads;
14
33
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"names":["NativeModules","Platform","LINKING_ERROR","select","ios","default","Tyrads","TyradsSdk","Proxy","get","Error"],"sourceRoot":"../../src","sources":["index.tsx"],"mappings":";;AAAA,SAASA,aAAa,EAAEC,QAAQ,QAAQ,cAAc;AAEtD,MAAMC,aAAa,GACjB,qEAAqE,GACrED,QAAQ,CAACE,MAAM,CAAC;EAAEC,GAAG,EAAE,gCAAgC;EAAEC,OAAO,EAAE;AAAG,CAAC,CAAC,GACvE,sDAAsD,GACtD,+BAA+B;AAEjC,MAAMC,MAAM,GAAGN,aAAa,CAACO,SAAS,GAClCP,aAAa,CAACO,SAAS,GACvB,IAAIC,KAAK,CACP,CAAC,CAAC,EACF;EACEC,GAAGA,CAAA,EAAG;IACJ,MAAM,IAAIC,KAAK,CAACR,aAAa,CAAC;EAChC;AACF,CACF,CAAC;AACL,eAAeI,MAAM","ignoreList":[]}
1
+ {"version":3,"names":["NativeModules","Platform","LINKING_ERROR","select","ios","default","TyradsSdk","Proxy","get","Error","Tyrads","init","apiKey","apiSecret","loginUser","userId","showOffers","launchMode","route","campaignID","OS"],"sourceRoot":"../../src","sources":["index.tsx"],"mappings":";;AAAA,SAASA,aAAa,EAAEC,QAAQ,QAAQ,cAAc;AAEtD,MAAMC,aAAa,GACjB,qEAAqE,GACrED,QAAQ,CAACE,MAAM,CAAC;EAAEC,GAAG,EAAE,gCAAgC;EAAEC,OAAO,EAAE;AAAG,CAAC,CAAC,GACvE,sDAAsD,GACtD,+BAA+B;AAEjC,MAAMC,SAAS,GAAGN,aAAa,CAACM,SAAS,GACrCN,aAAa,CAACM,SAAS,GACvB,IAAIC,KAAK,CACP,CAAC,CAAC,EACF;EACEC,GAAGA,CAAA,EAAG;IACJ,MAAM,IAAIC,KAAK,CAACP,aAAa,CAAC;EAChC;AACF,CACF,CAAC;AAEL,MAAMQ,MAAM,GAAG;EACbC,IAAI,EAAEA,CAACC,MAAc,EAAEC,SAAiB,KAAK;IAC3C,OAAOP,SAAS,CAACK,IAAI,CAACC,MAAM,EAAEC,SAAS,CAAC;EAC1C,CAAC;EACDC,SAAS,EAAGC,MAAc,IAAK;IAC7B,OAAOT,SAAS,CAACQ,SAAS,CAACC,MAAM,CAAC;EACpC,CAAC;EACDC,UAAU,EAAEA,CAAC;IACXC,UAAU,GAAG,CAAC;IACdC,KAAK;IACLC,UAAU,GAAG;EAC+C,CAAC,GAAG,CAAC,CAAC,KAAK;IACvE,IAAIlB,QAAQ,CAACmB,EAAE,KAAK,KAAK,EAAE;MACzB,OAAOd,SAAS,CAACU,UAAU,CAACC,UAAU,EAAEC,KAAK,EAAEC,UAAU,CAAC;IAC5D,CAAC,MAAM;MACL,OAAOb,SAAS,CAACU,UAAU,CAACE,KAAK,EAAEC,UAAU,CAAC;IAChD;EACF;AACF,CAAC;AAED,eAAeT,MAAM","ignoreList":[]}
@@ -1,3 +1,11 @@
1
- declare const Tyrads: any;
1
+ declare const Tyrads: {
2
+ init: (apiKey: string, apiSecret: string) => any;
3
+ loginUser: (userId: string) => any;
4
+ showOffers: ({ launchMode, route, campaignID, }?: {
5
+ launchMode?: number;
6
+ route?: string;
7
+ campaignID?: number;
8
+ }) => any;
9
+ };
2
10
  export default Tyrads;
3
11
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/index.tsx"],"names":[],"mappings":"AAQA,QAAA,MAAM,MAAM,KASP,CAAC;AACN,eAAe,MAAM,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/index.tsx"],"names":[],"mappings":"AAmBA,QAAA,MAAM,MAAM;mBACK,MAAM,aAAa,MAAM;wBAGpB,MAAM;sDAOvB;QAAE,UAAU,CAAC,EAAE,MAAM,CAAC;QAAC,KAAK,CAAC,EAAE,MAAM,CAAC;QAAC,UAAU,CAAC,EAAE,MAAM,CAAA;KAAE;CAOhE,CAAC;AAEF,eAAe,MAAM,CAAC"}
@@ -1,3 +1,11 @@
1
- declare const Tyrads: any;
1
+ declare const Tyrads: {
2
+ init: (apiKey: string, apiSecret: string) => any;
3
+ loginUser: (userId: string) => any;
4
+ showOffers: ({ launchMode, route, campaignID, }?: {
5
+ launchMode?: number;
6
+ route?: string;
7
+ campaignID?: number;
8
+ }) => any;
9
+ };
2
10
  export default Tyrads;
3
11
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/index.tsx"],"names":[],"mappings":"AAQA,QAAA,MAAM,MAAM,KASP,CAAC;AACN,eAAe,MAAM,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/index.tsx"],"names":[],"mappings":"AAmBA,QAAA,MAAM,MAAM;mBACK,MAAM,aAAa,MAAM;wBAGpB,MAAM;sDAOvB;QAAE,UAAU,CAAC,EAAE,MAAM,CAAC;QAAC,KAAK,CAAC,EAAE,MAAM,CAAC;QAAC,UAAU,CAAC,EAAE,MAAM,CAAA;KAAE;CAOhE,CAAC;AAEF,eAAe,MAAM,CAAC"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@tyrads.com/tyrads-sdk",
3
- "version": "1.1.6-beta.2",
3
+ "version": "1.1.6-beta.6",
4
4
  "description": "Tyrads SDK for React Native ",
5
5
  "source": "./src/index.tsx",
6
6
  "main": "./lib/commonjs/index.js",
package/readme.md CHANGED
@@ -22,3 +22,74 @@ import Tyrads from '@tyrads.com/tyrads-sdk';
22
22
  Tyrads.showOffers();
23
23
  ```
24
24
 
25
+
26
+ </br>
27
+ <details>
28
+ <summary><strong>Launch Mode</strong></summary>
29
+
30
+
31
+ </br>
32
+
33
+ ##### Min SDK version required: v1.1.6
34
+ ##### Works only for iOS
35
+
36
+ </br>
37
+
38
+ Tyrads SDK provides the ability to open the Offerwall in a webkit view that is embedded in the app to provide a seamless user experience. Also, it provides the ability to open the Offerwall in an external browser (Safari) if Apple's app store policy does not approve the in-app rewards system for the app.
39
+
40
+ Available launch modes:
41
+ - `launchMode: 3` - opens the Offerwall in an external browser (Safari)
42
+ - `launchMode: 2` - opens the Offerwall in a webkit view that is embedded in the app
43
+
44
+ ```js
45
+
46
+ // Note: The launchMode parameter is optional, if not specified the default would be opening the Offerwall in an external browser (Safari)
47
+
48
+ Tyrads.showOffers({ launchMode: 3 });// provide launchMode: 2 to open the Offerwall in a webkit view that is embedded in the app
49
+
50
+ ```
51
+ </details>
52
+
53
+
54
+
55
+ </br>
56
+ <details>
57
+ <summary><strong>Deeplinking Routes</strong></summary>
58
+
59
+
60
+ </br>
61
+
62
+ ##### Min SDK version required: v1.1.6
63
+
64
+ </br>
65
+
66
+ The Tyrads SDK supports deeplinking to specific sections of the offerwall. When initializing or interacting with the SDK, you can specify a route to open a particular page. For campaign-specific routes, you'll need to provide the campaignID as well.
67
+
68
+ Available routes and their usage:
69
+ - `campaigns` - opens the Campaigns Page
70
+ - `campaigns-activated` - opens the Activated Campaigns Page
71
+ - `campaign-details` - opens the Campaign Details Page (requires campaignID)
72
+ - `campaign-tickets` - opens the Campaign Tickets Page (requires campaignID)
73
+
74
+ ```js
75
+
76
+ // Default route (Campaigns Page)
77
+ Tyrads.showOffers();
78
+
79
+ // Explicitly specifying the Campaigns Page
80
+ Tyrads.showOffers({ route: "campaigns" });
81
+
82
+ // Activated Campaigns Page
83
+ Tyrads.showOffers({ route: "campaigns-activated" });
84
+
85
+ // Campaign Details Page (requires campaignID)
86
+ Tyrads.showOffers({ route: "campaign-details", campaignID: "your_campaign_id_here" });
87
+
88
+ // Campaign Tickets Page (requires campaignID)
89
+ Tyrads.showOffers({ route: "campaign-tickets", campaignID: "your_campaign_id_here" });
90
+
91
+ ```
92
+ </details>
93
+
94
+ </br></br>
95
+
package/src/index.tsx CHANGED
@@ -6,7 +6,7 @@ const LINKING_ERROR =
6
6
  '- You rebuilt the app after installing the package\n' +
7
7
  '- You are not using Expo Go\n';
8
8
 
9
- const Tyrads = NativeModules.TyradsSdk
9
+ const TyradsSdk = NativeModules.TyradsSdk
10
10
  ? NativeModules.TyradsSdk
11
11
  : new Proxy(
12
12
  {},
@@ -16,4 +16,25 @@ const Tyrads = NativeModules.TyradsSdk
16
16
  },
17
17
  }
18
18
  );
19
+
20
+ const Tyrads = {
21
+ init: (apiKey: string, apiSecret: string) => {
22
+ return TyradsSdk.init(apiKey, apiSecret);
23
+ },
24
+ loginUser: (userId: string) => {
25
+ return TyradsSdk.loginUser(userId);
26
+ },
27
+ showOffers: ({
28
+ launchMode = 3,
29
+ route,
30
+ campaignID = 0,
31
+ }: { launchMode?: number; route?: string; campaignID?: number } = {}) => {
32
+ if (Platform.OS === 'ios') {
33
+ return TyradsSdk.showOffers(launchMode, route, campaignID);
34
+ } else {
35
+ return TyradsSdk.showOffers(route, campaignID);
36
+ }
37
+ },
38
+ };
39
+
19
40
  export default Tyrads;