apps-sdk 1.1.52 → 1.1.54

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/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "apps-sdk",
3
- "version": "1.1.52",
3
+ "version": "1.1.54",
4
4
  "description": "Apps SDK",
5
5
  "main": "index.js",
6
6
  "scripts": {
@@ -1,7 +1,7 @@
1
1
  import { adapty } from 'react-native-adapty';
2
2
  import * as config from '../../config';
3
3
  import {Session} from "./index";
4
- import {createPaywallView} from "react-native-adapty/dist/ui";
4
+ import {createPaywallView, createOnboardingView} from "react-native-adapty/dist/ui";
5
5
 
6
6
  class Adapty {
7
7
  async initialize(apiKey = null) {
@@ -179,6 +179,105 @@ class Adapty {
179
179
  console.error('Error setting integration identifier:', error);
180
180
  }
181
181
  }
182
+
183
+ async getOnboardingForPlacement(placementID, lang) {
184
+ try {
185
+ return await adapty.getOnboarding(placementID, lang);
186
+ } catch (error) {
187
+ return null;
188
+ }
189
+ }
190
+
191
+ async createOnboardingView(onboarding) {
192
+ try {
193
+ return await createOnboardingView(onboarding);
194
+ } catch (error) {
195
+ console.error('Error creating onboarding view:', error);
196
+ return null;
197
+ }
198
+ }
199
+
200
+ async showOnboarding(placementID, lang, eventHandlers = {}) {
201
+ try {
202
+ const onboarding = await this.getOnboardingForPlacement(placementID, lang);
203
+ config.DEBUG_MODE && console.log('Getting onboarding for placement:', placementID, 'and language:', lang, 'onboarding:', onboarding);
204
+ if (onboarding) {
205
+ const onboardingView = await this.createOnboardingView(onboarding);
206
+ onboardingView.registerEventHandlers({
207
+ onAnalytics: eventHandlers.onAnalytics || (() => { }),
208
+ onClose: eventHandlers.onClose || (async (actionId, meta) => { await onboardingView.dismiss(); return true; }),
209
+ onCustom: eventHandlers.onCustom || (() => { }),
210
+ onPaywall: eventHandlers.onPaywall || (() => { }),
211
+ onStateUpdated: eventHandlers.onStateUpdated || (() => { }),
212
+ onFinishedLoading: eventHandlers.onFinishedLoading || (() => { }),
213
+ onError: eventHandlers.onError || (() => { }),
214
+ });
215
+ await onboardingView.present();
216
+ } else {
217
+ console.warn('Error showing onboarding: onboarding not found for placement', placementID, 'and language', lang);
218
+ }
219
+ } catch (error) {
220
+ console.error('Error showing onboarding:', error);
221
+ }
222
+ }
223
+
224
+ async checkOnboardingExists(placementID, lang) {
225
+ const onboarding = await this.getOnboardingForPlacement(placementID, lang);
226
+ return onboarding !== null;
227
+ }
228
+
229
+ async preloadOnboarding(placementID, lang) {
230
+ try {
231
+ const onboarding = await this.getOnboardingForPlacement(placementID, lang);
232
+ if (onboarding) {
233
+ const onboardingView = await this.createOnboardingView(onboarding);
234
+ if (onboardingView) {
235
+ return onboardingView;
236
+ } else {
237
+ console.warn('Error preloading onboarding: onboarding view not created for placement', placementID, 'and language', lang);
238
+ return null;
239
+ }
240
+ } else {
241
+ console.warn('Error preloading onboarding: onboarding not found for placement', placementID, 'and language', lang);
242
+ }
243
+ } catch (error) {
244
+ console.error('Error preloading onboarding:', error);
245
+ }
246
+ }
247
+
248
+ async closeOnboarding() {
249
+ const onboardingView = await adapty.getCurrentOnboardingView();
250
+ try {
251
+ if (onboardingView) {
252
+ onboardingView.dismiss();
253
+ } else {
254
+ console.warn('Error closing onboarding: onboarding view is null');
255
+ }
256
+ } catch (error) {
257
+ console.error('Error closing onboarding:', error);
258
+ }
259
+ }
260
+
261
+ async showOnboardingPreloaded(onboardingView, eventHandlers = {}) {
262
+ try {
263
+ if (onboardingView) {
264
+ onboardingView.registerEventHandlers({
265
+ onAnalytics: eventHandlers.onAnalytics || (() => { }),
266
+ onClose: eventHandlers.onClose || (async (actionId, meta) => { await onboardingView.dismiss(); return true; }),
267
+ onCustom: eventHandlers.onCustom || (() => { }),
268
+ onPaywall: eventHandlers.onPaywall || (() => { }),
269
+ onStateUpdated: eventHandlers.onStateUpdated || (() => { }),
270
+ onFinishedLoading: eventHandlers.onFinishedLoading || (() => { }),
271
+ onError: eventHandlers.onError || (() => { }),
272
+ });
273
+ await onboardingView.present();
274
+ } else {
275
+ console.warn('Error showing preloaded onboarding: onboarding view is null');
276
+ }
277
+ } catch (error) {
278
+ console.error('Error showing preloaded onboarding:', error);
279
+ }
280
+ }
182
281
  }
183
282
 
184
283
  export default new Adapty();
@@ -98,6 +98,24 @@ class Facebook {
98
98
  }
99
99
  }
100
100
 
101
+ async trackStartTrial(parameters = {}) {
102
+ if (!this.isInitialized) {
103
+ console.log('Facebook is not initialized');
104
+ return;
105
+ }
106
+
107
+ try {
108
+ if (!this.devMode) {
109
+ await AppEventsLogger.logEvent('StartTrial', parameters);
110
+ config.DEBUG_MODE && console.log(`Facebook StartTrial tracked with parameters:`, parameters);
111
+ } else {
112
+ config.DEBUG_MODE && console.log(`Facebook StartTrial tracked but not send (DEV_MODE ON) with parameters:`, parameters);
113
+ }
114
+ } catch (error) {
115
+ console.error('Error tracking start trial:', error);
116
+ }
117
+ }
118
+
101
119
  async trackPushNotificationOpen(payload = {}) {
102
120
  if (!this.isInitialized) {
103
121
  console.log('Facebook is not initialized');
package/types/index.d.ts CHANGED
@@ -211,6 +211,16 @@ declare module 'apps-sdk' {
211
211
  onCustomAction?: (action: string, data: any) => void;
212
212
  };
213
213
 
214
+ type OnboardingEventHandlers = {
215
+ onAnalytics?: (event: any, meta: any) => void;
216
+ onClose?: (actionId: string, meta: any) => Promise<boolean> | boolean;
217
+ onCustom?: (actionId: string, meta: any) => void;
218
+ onPaywall?: (actionId: string, meta: any) => void;
219
+ onStateUpdated?: (action: any, meta: any) => void;
220
+ onFinishedLoading?: (meta: any) => void;
221
+ onError?: (error: any) => void;
222
+ };
223
+
214
224
  export class Adapty {
215
225
  initialize(apiKey: string): Promise<void>;
216
226
  getPaywallForPlacement(placementID: string, lang: string): Promise<any>;
@@ -225,6 +235,13 @@ declare module 'apps-sdk' {
225
235
  setAdjustIntegrationIdentifier(adjustIntegrationIdentifier: string): Promise<void>;
226
236
  setMixpanelIntegrationIdentifier(mixpanelIntegrationIdentifier: string): Promise<void>;
227
237
  closePaywall(): Promise<void>;
238
+ getOnboardingForPlacement(placementID: string, lang: string): Promise<any>;
239
+ createOnboardingView(onboarding: any): Promise<any>;
240
+ showOnboarding(placementID: string, lang: string, eventHandlers?: OnboardingEventHandlers): Promise<void>;
241
+ checkOnboardingExists(placementID: string, lang: string): Promise<boolean>;
242
+ preloadOnboarding(placementID: string, lang: string): Promise<any>;
243
+ closeOnboarding(): Promise<void>;
244
+ showOnboardingPreloaded(onboardingView: any, eventHandlers?: OnboardingEventHandlers): Promise<void>;
228
245
  }
229
246
 
230
247
  export class TrackingTransparency {
@@ -243,6 +260,7 @@ declare module 'apps-sdk' {
243
260
  trackEvent(eventName: string, properties?: object): Promise<void>;
244
261
  trackEventIfExist(eventKeyword: string, eventData?: object): Promise<void>;
245
262
  trackPurchase(valueToSum: number, currency: string, parameters?: object): Promise<void>;
263
+ trackStartTrial(parameters?: object): Promise<void>;
246
264
  trackPushNotificationOpen(payload?: object): Promise<void>;
247
265
  isFacebookInitialized(): boolean;
248
266
  getApplicationId(): string | null;