@appboxo/expo-boxo-sdk 0.9.2 → 0.11.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/CHANGELOG.md +8 -0
- package/android/build.gradle +1 -3
- package/android/src/main/java/io/boxo/expo/ConfigOptions.kt +4 -1
- package/android/src/main/java/io/boxo/expo/ExpoBoxoSdkModule.kt +20 -0
- package/android/src/main/java/io/boxo/expo/MiniappOptions.kt +1 -1
- package/android/src/main/java/io/boxo/expo/SplashScreenOptions.kt +24 -0
- package/build/ExpoBoxoSdk.types.d.ts +12 -0
- package/build/ExpoBoxoSdk.types.d.ts.map +1 -1
- package/build/ExpoBoxoSdk.types.js.map +1 -1
- package/ios/ConfigOptions.swift +4 -1
- package/ios/ExpoBoxoSdk.podspec +1 -1
- package/ios/ExpoBoxoSdkModule.swift +57 -0
- package/ios/MiniappOptions.swift +1 -1
- package/ios/SplashScreenOptions.swift +26 -0
- package/package.json +1 -1
- package/src/ExpoBoxoSdk.types.ts +15 -1
package/CHANGELOG.md
CHANGED
package/android/build.gradle
CHANGED
|
@@ -17,7 +17,7 @@ class ConfigOptions : Record {
|
|
|
17
17
|
val sandboxMode: Boolean = false
|
|
18
18
|
|
|
19
19
|
@Field
|
|
20
|
-
val multitaskMode: Boolean =
|
|
20
|
+
val multitaskMode: Boolean = true
|
|
21
21
|
|
|
22
22
|
@Field
|
|
23
23
|
val theme: String = "system"
|
|
@@ -36,4 +36,7 @@ class ConfigOptions : Record {
|
|
|
36
36
|
|
|
37
37
|
@Field
|
|
38
38
|
val consentScreenConfig: ConsentScreenConfigOptions? = null
|
|
39
|
+
|
|
40
|
+
@Field
|
|
41
|
+
val splashScreenOptions: SplashScreenOptions? = null
|
|
39
42
|
}
|
|
@@ -2,6 +2,7 @@ package io.boxo.expo
|
|
|
2
2
|
|
|
3
3
|
import android.os.Handler
|
|
4
4
|
import android.os.Looper
|
|
5
|
+
import android.graphics.Color
|
|
5
6
|
import io.boxo.data.models.MiniappData
|
|
6
7
|
import io.boxo.data.models.PageAnimation
|
|
7
8
|
import io.boxo.data.models.ConsentScreenConfig
|
|
@@ -55,6 +56,25 @@ class ExpoBoxoSdkModule : Module() {
|
|
|
55
56
|
.showAboutPage(options.showAboutPage)
|
|
56
57
|
.debug(options.isDebug)
|
|
57
58
|
.setConsentScreenConfig(consentScreenConfig)
|
|
59
|
+
.apply{
|
|
60
|
+
if (options.splashScreenOptions != null) {
|
|
61
|
+
val options = options.splashScreenOptions
|
|
62
|
+
setProgressBarColors(
|
|
63
|
+
lightIndicator =
|
|
64
|
+
Color.parseColor(options.lightProgressIndicator),
|
|
65
|
+
lightTrack =
|
|
66
|
+
Color.parseColor(options.lightProgressTrack),
|
|
67
|
+
darkIndicator =
|
|
68
|
+
Color.parseColor(options.darkProgressIndicator),
|
|
69
|
+
darkTrack =
|
|
70
|
+
Color.parseColor(options.darkProgressTrack)
|
|
71
|
+
)
|
|
72
|
+
setSplashBackgroundColors(
|
|
73
|
+
light = Color.parseColor(options.lightBackground),
|
|
74
|
+
dark = Color.parseColor(options.darkBackground)
|
|
75
|
+
)
|
|
76
|
+
}
|
|
77
|
+
}
|
|
58
78
|
.build()
|
|
59
79
|
)
|
|
60
80
|
}
|
|
@@ -0,0 +1,24 @@
|
|
|
1
|
+
package io.boxo.expo
|
|
2
|
+
|
|
3
|
+
import expo.modules.kotlin.records.Field
|
|
4
|
+
import expo.modules.kotlin.records.Record
|
|
5
|
+
|
|
6
|
+
class SplashScreenOptions : Record {
|
|
7
|
+
@Field
|
|
8
|
+
val lightProgressIndicator: String = ""
|
|
9
|
+
|
|
10
|
+
@Field
|
|
11
|
+
val lightProgressTrack: String = ""
|
|
12
|
+
|
|
13
|
+
@Field
|
|
14
|
+
val darkProgressIndicator: String = ""
|
|
15
|
+
|
|
16
|
+
@Field
|
|
17
|
+
val darkProgressTrack: String = ""
|
|
18
|
+
|
|
19
|
+
@Field
|
|
20
|
+
val lightBackground: String = ""
|
|
21
|
+
|
|
22
|
+
@Field
|
|
23
|
+
val darkBackground: String = ""
|
|
24
|
+
}
|
|
@@ -77,6 +77,10 @@ export type ConfigOptions = {
|
|
|
77
77
|
* use it to customize the consent screen
|
|
78
78
|
*/
|
|
79
79
|
consentScreenConfig?: ConsentScreenConfig;
|
|
80
|
+
/**
|
|
81
|
+
* use it to customize the splash screen
|
|
82
|
+
*/
|
|
83
|
+
splashScreenOptions?: SplashScreenOptions;
|
|
80
84
|
};
|
|
81
85
|
export type MiniappOptions = {
|
|
82
86
|
/**
|
|
@@ -134,4 +138,12 @@ export type ConsentScreenConfig = {
|
|
|
134
138
|
allowButtonTitle?: string;
|
|
135
139
|
cancelButtonTitle?: string;
|
|
136
140
|
};
|
|
141
|
+
export type SplashScreenOptions = {
|
|
142
|
+
lightBackground: string;
|
|
143
|
+
darkBackground: string;
|
|
144
|
+
lightProgressIndicator: string;
|
|
145
|
+
lightProgressTrack: string;
|
|
146
|
+
darkProgressIndicator: string;
|
|
147
|
+
darkProgressTrack: string;
|
|
148
|
+
};
|
|
137
149
|
//# sourceMappingURL=ExpoBoxoSdk.types.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ExpoBoxoSdk.types.d.ts","sourceRoot":"","sources":["../src/ExpoBoxoSdk.types.ts"],"names":[],"mappings":"AAAA,MAAM,MAAM,gBAAgB,GAAG;IAC7B,KAAK,EAAE,MAAM,CAAC;CACf,CAAC;AAEF,MAAM,MAAM,WAAW,GAAG;IACxB,KAAK,EAAE,MAAM,CAAC;IACd,gBAAgB,CAAC,EAAE,MAAM,CAAC;IAC1B,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,WAAW,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC;IAClC,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,MAAM,CAAC,EAAE,MAAM,CAAC;CACjB,CAAC;AAEF,MAAM,MAAM,eAAe,GAAG;IAC5B,KAAK,EAAE,MAAM,CAAC;IACd,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,OAAO,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC;CAC/B,CAAC;AAEF,MAAM,MAAM,aAAa,GAAG;IAC1B,KAAK,EAAE,MAAM,CAAC;IACd;;;;;;;OAOG;IACH,SAAS,EAAE,MAAM,CAAC;IAClB,KAAK,CAAC,EAAE,MAAM,CAAA;CACf,CAAC;AAEF,MAAM,MAAM,aAAa,GAAG;IAC1B;;OAEG;IACH,QAAQ,EAAE,MAAM,CAAC;IACjB;;OAEG;IACH,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB;;OAEG;IACH,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB;;OAEG;IACH,WAAW,CAAC,EAAE,OAAO,CAAC;IACtB;;;OAGG;IACH,aAAa,CAAC,EAAE,OAAO,CAAC;IACxB;;OAEG;IACH,KAAK,CAAC,EAAE,OAAO,GAAG,MAAM,GAAG,QAAQ,CAAC;IACpC;;OAEG;IACH,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB;;OAEG;IACH,mBAAmB,CAAC,EAAE,OAAO,CAAC;IAC9B;;OAEG;IACH,cAAc,CAAC,EAAE,OAAO,CAAC;IAEzB;;OAEG;IACH,aAAa,CAAC,EAAE,OAAO,CAAC;IAExB;;OAEG;IACH,mBAAmB,CAAC,EAAE,mBAAmB,
|
|
1
|
+
{"version":3,"file":"ExpoBoxoSdk.types.d.ts","sourceRoot":"","sources":["../src/ExpoBoxoSdk.types.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ExpoBoxoSdk.types.js","sourceRoot":"","sources":["../src/ExpoBoxoSdk.types.ts"],"names":[],"mappings":"","sourcesContent":["export type AuthEventPayload = {\n appId: string;\n};\n\nexport type PaymentData = {\n appId: string;\n transactionToken?: string;\n miniappOrderId?: string;\n amount?: number;\n currency?: string;\n extraParams?: Record<string, any>;\n hostappOrderId?: string;\n status?: string;\n};\n\nexport type CustomEventData = {\n appId: string;\n requestId?: number;\n type?: string;\n errorType?: string;\n payload?: Record<string, any>;\n};\n\nexport type LifecycleData = {\n appId: string;\n /**\n * onLaunch - Called when the miniapp will launch with Boxo.open(...)\n * onResume - Called when the miniapp will start interacting with the user\n * onPause - Called when the miniapp loses foreground state\n * onClose - Called when clicked close button in miniapp or when destroyed miniapp page\n * onError - Called when miniapp fails to launch due to internet connection issues\n * onUserInteraction - Called whenever touch event is dispatched to the miniapp page.\n */\n lifecycle: string;\n error?: string\n};\n\nexport type ConfigOptions = {\n /**\n * your client id from dashboard\n */\n clientId: string;\n /**\n * hostapp userId, will be used for the Consent Management\n */\n userId?: string;\n /**\n * language value will be passed to the miniapp\n */\n language?: string;\n /**\n * switch to sandbox mode\n */\n sandboxMode?: boolean;\n /**\n * Each miniapp appears as a task in the Recents screen.\n * !It works only on android devices.\n */\n multitaskMode?: boolean;\n /**\n * theme for splash screen and other native components used inside miniapp.\n */\n theme?: 'light' | 'dark' | 'system';\n /**\n * enables webview debugging\n */\n isDebug?: boolean;\n /**\n * use it to hide \"Settings\" from Miniapp menu\n */\n showPermissionsPage?: boolean;\n /**\n * use it to hide \"Clear cache\" from Miniapp menu\n */\n showClearCache?: boolean;\n\n /**\n * use it to hide \"About Page\" from Miniapp menu\n */\n showAboutPage?: boolean;\n\n /**\n * use it to customize the consent screen\n */\n consentScreenConfig?: ConsentScreenConfig\n};\n\nexport type MiniappOptions = {\n /**\n * miniapp id\n */\n appId: string;\n /**\n * (optional) data as Map that is sent to miniapp\n */\n data?: Record<string, any>;\n /**\n * (optional) miniapp theme 'dark' | 'light' | 'system' (by default is system theme)\n */\n theme?: 'light' | 'dark' | 'system';\n /**\n * (optional) extra query params to append to miniapp URL (like: http://miniapp-url.com/?param=test)\n */\n extraUrlParams?: Record<string, string>;\n /**\n * (optional) suffix to append to miniapp URL (like: http://miniapp-url.com/?param=test)\n */\n urlSuffix?: string;\n /**\n * (optional) provide colors to miniapp if miniapp supports\n */\n colors?: Record<string, string>;\n /**\n * (optional) use to skip miniapp splash screen\n */\n enableSplash?: boolean;\n /**\n * (optional) use to save state on close miniapp\n */\n saveState?: boolean;\n /**\n * (optional) use to change launch animation for miniapp.\n */\n pageAnimation?: 'BOTTOM_TO_TOP' | 'TOP_TO_BOTTOM' | 'LEFT_TO_RIGHT' | 'RIGHT_TO_LEFT' | 'FADE_IN';\n};\n\nexport type MiniappListResult = {\n miniapps?: Array<MiniappData>;\n error?: string;\n}\n\nexport type MiniappData = {\n appId: string;\n name: string;\n category: string;\n description: string;\n logo: string;\n}\n\nexport type ConsentScreenConfig = {\n title?: string;\n noRequiredFieldsDescription?: string;\n requiredFieldsDescription?: string;\n allowButtonTitle?: string;\n cancelButtonTitle?: string;\n};"]}
|
|
1
|
+
{"version":3,"file":"ExpoBoxoSdk.types.js","sourceRoot":"","sources":["../src/ExpoBoxoSdk.types.ts"],"names":[],"mappings":"","sourcesContent":["export type AuthEventPayload = {\n appId: string;\n};\n\nexport type PaymentData = {\n appId: string;\n transactionToken?: string;\n miniappOrderId?: string;\n amount?: number;\n currency?: string;\n extraParams?: Record<string, any>;\n hostappOrderId?: string;\n status?: string;\n};\n\nexport type CustomEventData = {\n appId: string;\n requestId?: number;\n type?: string;\n errorType?: string;\n payload?: Record<string, any>;\n};\n\nexport type LifecycleData = {\n appId: string;\n /**\n * onLaunch - Called when the miniapp will launch with Boxo.open(...)\n * onResume - Called when the miniapp will start interacting with the user\n * onPause - Called when the miniapp loses foreground state\n * onClose - Called when clicked close button in miniapp or when destroyed miniapp page\n * onError - Called when miniapp fails to launch due to internet connection issues\n * onUserInteraction - Called whenever touch event is dispatched to the miniapp page.\n */\n lifecycle: string;\n error?: string\n};\n\nexport type ConfigOptions = {\n /**\n * your client id from dashboard\n */\n clientId: string;\n /**\n * hostapp userId, will be used for the Consent Management\n */\n userId?: string;\n /**\n * language value will be passed to the miniapp\n */\n language?: string;\n /**\n * switch to sandbox mode\n */\n sandboxMode?: boolean;\n /**\n * Each miniapp appears as a task in the Recents screen.\n * !It works only on android devices.\n */\n multitaskMode?: boolean;\n /**\n * theme for splash screen and other native components used inside miniapp.\n */\n theme?: 'light' | 'dark' | 'system';\n /**\n * enables webview debugging\n */\n isDebug?: boolean;\n /**\n * use it to hide \"Settings\" from Miniapp menu\n */\n showPermissionsPage?: boolean;\n /**\n * use it to hide \"Clear cache\" from Miniapp menu\n */\n showClearCache?: boolean;\n\n /**\n * use it to hide \"About Page\" from Miniapp menu\n */\n showAboutPage?: boolean;\n\n /**\n * use it to customize the consent screen\n */\n consentScreenConfig?: ConsentScreenConfig;\n\n /**\n * use it to customize the splash screen\n */\n splashScreenOptions?: SplashScreenOptions;\n};\n\nexport type MiniappOptions = {\n /**\n * miniapp id\n */\n appId: string;\n /**\n * (optional) data as Map that is sent to miniapp\n */\n data?: Record<string, any>;\n /**\n * (optional) miniapp theme 'dark' | 'light' | 'system' (by default is system theme)\n */\n theme?: 'light' | 'dark' | 'system';\n /**\n * (optional) extra query params to append to miniapp URL (like: http://miniapp-url.com/?param=test)\n */\n extraUrlParams?: Record<string, string>;\n /**\n * (optional) suffix to append to miniapp URL (like: http://miniapp-url.com/?param=test)\n */\n urlSuffix?: string;\n /**\n * (optional) provide colors to miniapp if miniapp supports\n */\n colors?: Record<string, string>;\n /**\n * (optional) use to skip miniapp splash screen\n */\n enableSplash?: boolean;\n /**\n * (optional) use to save state on close miniapp\n */\n saveState?: boolean;\n /**\n * (optional) use to change launch animation for miniapp.\n */\n pageAnimation?: 'BOTTOM_TO_TOP' | 'TOP_TO_BOTTOM' | 'LEFT_TO_RIGHT' | 'RIGHT_TO_LEFT' | 'FADE_IN';\n};\n\nexport type MiniappListResult = {\n miniapps?: Array<MiniappData>;\n error?: string;\n}\n\nexport type MiniappData = {\n appId: string;\n name: string;\n category: string;\n description: string;\n logo: string;\n}\n\nexport type ConsentScreenConfig = {\n title?: string;\n noRequiredFieldsDescription?: string;\n requiredFieldsDescription?: string;\n allowButtonTitle?: string;\n cancelButtonTitle?: string;\n};\n\nexport type SplashScreenOptions = {\n lightBackground: string;\n darkBackground: string;\n lightProgressIndicator: string;\n lightProgressTrack: string;\n darkProgressIndicator: string;\n darkProgressTrack: string;\n};"]}
|
package/ios/ConfigOptions.swift
CHANGED
|
@@ -21,7 +21,7 @@ struct ConfigOptions: Record {
|
|
|
21
21
|
var sandboxMode: Bool = false
|
|
22
22
|
|
|
23
23
|
@Field
|
|
24
|
-
var multitaskMode: Bool =
|
|
24
|
+
var multitaskMode: Bool = true
|
|
25
25
|
|
|
26
26
|
@Field
|
|
27
27
|
var theme: String = "system"
|
|
@@ -40,4 +40,7 @@ struct ConfigOptions: Record {
|
|
|
40
40
|
|
|
41
41
|
@Field
|
|
42
42
|
var consentScreenConfig: ConsentScreenConfigOptions?
|
|
43
|
+
|
|
44
|
+
@Field
|
|
45
|
+
var splashScreenOptions: SplashScreenOptions?
|
|
43
46
|
}
|
package/ios/ExpoBoxoSdk.podspec
CHANGED
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
import ExpoModulesCore
|
|
2
2
|
import BoxoSDK
|
|
3
|
+
import UIKit
|
|
3
4
|
|
|
4
5
|
public class ExpoBoxoSdkModule: Module {
|
|
5
6
|
|
|
@@ -38,6 +39,20 @@ public class ExpoBoxoSdkModule: Module {
|
|
|
38
39
|
config.consentScreenConfig = consentScreenConfig
|
|
39
40
|
}
|
|
40
41
|
|
|
42
|
+
if let splashScreenOptions = options.splashScreenOptions {
|
|
43
|
+
if let lightBgColor = UIColor(hex: splashScreenOptions.lightBackground), let darkBgColor = UIColor(hex: splashScreenOptions.darkBackground) {
|
|
44
|
+
config.splashBackgroundColors = SplashBackgroundColors(light: lightBgColor, dark: darkBgColor)
|
|
45
|
+
}
|
|
46
|
+
|
|
47
|
+
if
|
|
48
|
+
let lightProgressIndicatorColor = UIColor(hex: splashScreenOptions.lightProgressIndicator),
|
|
49
|
+
let lightProgressTrackColor = UIColor(hex: splashScreenOptions.lightProgressTrack),
|
|
50
|
+
let darkProgressIndicatorColor = UIColor(hex: splashScreenOptions.darkProgressIndicator),
|
|
51
|
+
let darkProgressTrackColor = UIColor(hex: splashScreenOptions.darkProgressTrack) {
|
|
52
|
+
config.progressBarColors = ProgressBarColors(lightIndicator: lightProgressIndicatorColor, lightTrack: lightProgressTrackColor, darkIndicator: darkProgressIndicatorColor, darkTrack: darkProgressTrackColor)
|
|
53
|
+
}
|
|
54
|
+
}
|
|
55
|
+
|
|
41
56
|
Boxo.shared.setConfig(config: config)
|
|
42
57
|
}
|
|
43
58
|
|
|
@@ -261,3 +276,45 @@ extension ExpoBoxoSdkModule : MiniappDelegate {
|
|
|
261
276
|
sendEvent("onAuth", dict)
|
|
262
277
|
}
|
|
263
278
|
}
|
|
279
|
+
|
|
280
|
+
extension UIColor {
|
|
281
|
+
convenience init?(hex: String) {
|
|
282
|
+
let hex = hex.trimmingCharacters(in: .whitespacesAndNewlines)
|
|
283
|
+
.replacingOccurrences(of: "#", with: "")
|
|
284
|
+
|
|
285
|
+
guard let int = UInt64(hex, radix: 16) else { return nil }
|
|
286
|
+
|
|
287
|
+
switch hex.count {
|
|
288
|
+
case 6: // RRGGBB
|
|
289
|
+
self.init(
|
|
290
|
+
red: CGFloat((int >> 16) & 0xFF) / 255.0,
|
|
291
|
+
green: CGFloat((int >> 8) & 0xFF) / 255.0,
|
|
292
|
+
blue: CGFloat(int & 0xFF) / 255.0,
|
|
293
|
+
alpha: 1.0
|
|
294
|
+
)
|
|
295
|
+
|
|
296
|
+
case 8: // RRGGBBAA
|
|
297
|
+
self.init(
|
|
298
|
+
red: CGFloat((int >> 24) & 0xFF) / 255.0,
|
|
299
|
+
green: CGFloat((int >> 16) & 0xFF) / 255.0,
|
|
300
|
+
blue: CGFloat((int >> 8) & 0xFF) / 255.0,
|
|
301
|
+
alpha: CGFloat(int & 0xFF) / 255.0
|
|
302
|
+
)
|
|
303
|
+
|
|
304
|
+
case 3: // RGB (short form)
|
|
305
|
+
let r = ((int >> 8) & 0xF) * 17
|
|
306
|
+
let g = ((int >> 4) & 0xF) * 17
|
|
307
|
+
let b = (int & 0xF) * 17
|
|
308
|
+
|
|
309
|
+
self.init(
|
|
310
|
+
red: CGFloat(r) / 255.0,
|
|
311
|
+
green: CGFloat(g) / 255.0,
|
|
312
|
+
blue: CGFloat(b) / 255.0,
|
|
313
|
+
alpha: 1.0
|
|
314
|
+
)
|
|
315
|
+
|
|
316
|
+
default:
|
|
317
|
+
return nil
|
|
318
|
+
}
|
|
319
|
+
}
|
|
320
|
+
}
|
package/ios/MiniappOptions.swift
CHANGED
|
@@ -0,0 +1,26 @@
|
|
|
1
|
+
//
|
|
2
|
+
// SplashScreenOptions.swift
|
|
3
|
+
// ExpoBoxoSdk
|
|
4
|
+
//
|
|
5
|
+
|
|
6
|
+
import ExpoModulesCore
|
|
7
|
+
|
|
8
|
+
struct SplashScreenOptions: Record {
|
|
9
|
+
@Field
|
|
10
|
+
var lightProgressIndicator: String = ""
|
|
11
|
+
|
|
12
|
+
@Field
|
|
13
|
+
var lightProgressTrack: String = ""
|
|
14
|
+
|
|
15
|
+
@Field
|
|
16
|
+
var darkProgressIndicator: String = ""
|
|
17
|
+
|
|
18
|
+
@Field
|
|
19
|
+
var darkProgressTrack: String = ""
|
|
20
|
+
|
|
21
|
+
@Field
|
|
22
|
+
var lightBackground: String = ""
|
|
23
|
+
|
|
24
|
+
@Field
|
|
25
|
+
var darkBackground: String = ""
|
|
26
|
+
}
|
package/package.json
CHANGED
package/src/ExpoBoxoSdk.types.ts
CHANGED
|
@@ -82,7 +82,12 @@ export type ConfigOptions = {
|
|
|
82
82
|
/**
|
|
83
83
|
* use it to customize the consent screen
|
|
84
84
|
*/
|
|
85
|
-
consentScreenConfig?: ConsentScreenConfig
|
|
85
|
+
consentScreenConfig?: ConsentScreenConfig;
|
|
86
|
+
|
|
87
|
+
/**
|
|
88
|
+
* use it to customize the splash screen
|
|
89
|
+
*/
|
|
90
|
+
splashScreenOptions?: SplashScreenOptions;
|
|
86
91
|
};
|
|
87
92
|
|
|
88
93
|
export type MiniappOptions = {
|
|
@@ -143,4 +148,13 @@ export type ConsentScreenConfig = {
|
|
|
143
148
|
requiredFieldsDescription?: string;
|
|
144
149
|
allowButtonTitle?: string;
|
|
145
150
|
cancelButtonTitle?: string;
|
|
151
|
+
};
|
|
152
|
+
|
|
153
|
+
export type SplashScreenOptions = {
|
|
154
|
+
lightBackground: string;
|
|
155
|
+
darkBackground: string;
|
|
156
|
+
lightProgressIndicator: string;
|
|
157
|
+
lightProgressTrack: string;
|
|
158
|
+
darkProgressIndicator: string;
|
|
159
|
+
darkProgressTrack: string;
|
|
146
160
|
};
|