diff --git a/README.md b/README.md index 0992906..cb84a90 100644 --- a/README.md +++ b/README.md @@ -89,7 +89,7 @@ class _MyAppState extends State { } ``` -You can also configure `region`, `endpoint` and `endpointFallbacks` in the `initFpjs` method, like below. For the web platform, you can use an additional `scriptUrlPattern` property to specify a custom URL for loading the JavaScript agent. This is required for proxy integrations. +You can also configure `region`, `endpoint` and `endpointFallbacks` in the `initFpjs` method, like below. For the web platform, you can use an additional `scriptUrlPattern` and `scriptUrlPatternFallbacks` properties to specify a custom URL for loading the JavaScript agent. This is required for proxy integrations. ```dart void doInit() async { await FpjsProPlugin.initFpjs( @@ -98,7 +98,8 @@ void doInit() async { endpointFallbacks: ['https://subdomain2.domain.com', 'https://subdomain3.domain.com'], region: Region.eu, // or Region.ap, Region.us // Only necessary for the web platform - scriptUrlPattern: 'https://your.domain/fp_js/script_path?apiKey=&version=&loaderVersion=' + scriptUrlPattern: 'https://your.domain/fp_js/script_path?apiKey=&version=&loaderVersion=', + scriptUrlPatternFallbacks: ['https://your.second-domain/fp_js/script_path?apiKey=&version=&loaderVersion='] ); } ``` diff --git a/lib/fpjs_pro_plugin.dart b/lib/fpjs_pro_plugin.dart index ccd83dd..730fd35 100644 --- a/lib/fpjs_pro_plugin.dart +++ b/lib/fpjs_pro_plugin.dart @@ -26,6 +26,7 @@ class FpjsProPlugin { {String? endpoint, List? endpointFallbacks, String? scriptUrlPattern, + List? scriptUrlPatternFallbacks, Region? region, bool extendedResponseFormat = false}) async { await _channel.invokeMethod('init', { @@ -33,6 +34,7 @@ class FpjsProPlugin { 'endpoint': endpoint, 'endpointFallbacks': endpointFallbacks, 'scriptUrlPattern': scriptUrlPattern, + 'scriptUrlPatternFallbacks': scriptUrlPatternFallbacks, 'region': region?.stringValue, 'extendedResponseFormat': extendedResponseFormat, 'pluginVersion': pluginVersion, diff --git a/lib/fpjs_pro_plugin_web.dart b/lib/fpjs_pro_plugin_web.dart index 1958bcf..6caa305 100644 --- a/lib/fpjs_pro_plugin_web.dart +++ b/lib/fpjs_pro_plugin_web.dart @@ -75,7 +75,10 @@ class FpjsProPluginWeb { ]; } if (call.arguments['scriptUrlPattern'] != null) { - options.scriptUrlPattern = call.arguments['scriptUrlPattern']; + options.scriptUrlPattern = [ + call.arguments['scriptUrlPattern'], + ...(call.arguments['scriptUrlPatternFallbacks'] ?? []) + ]; } try { _fpPromise = promiseToFuture(FingerprintJS.load(options)); diff --git a/lib/js_agent_interop.dart b/lib/js_agent_interop.dart index bd0c772..692b8f9 100644 --- a/lib/js_agent_interop.dart +++ b/lib/js_agent_interop.dart @@ -220,8 +220,8 @@ class FingerprintJSOptions { /// - — the major version of JS agent; /// - — the public key set via the `apiKey` option; /// - — the version of this package; - external String? get scriptUrlPattern; - external set scriptUrlPattern(String? scriptUrlPattern); + external List? get scriptUrlPattern; + external set scriptUrlPattern(List? scriptUrlPattern); external factory FingerprintJSOptions( {String apiKey, List integrationInfo});