fetchAndExecuteJavaScript function
Implementation
Future<void> fetchAndExecuteJavaScript(String txnId,String clientId,String env) async {
void execInit(){
String jsCode= '''
window.isInitialized = false;
function init(){
window._Fingerprint.init({
sessionId: '$txnId',
clientId: '$clientId',
userId: '',
environment: '$env'
});
window.isInitialized = true;
}
if( window._Fingerprint){
init();
}
''';
js.context.callMethod('eval', [jsCode]);
}
void loadScript(){
String url = 'https://fingerprint.app.bureau.id/index.js';
if (env == 'SANDBOX') {
url = 'https://fingerprint.app.stg.bureau.id/index.js';
}
ScriptElement script = ScriptElement();
script.src = url;
script.onLoad.listen((event) {
execInit();
});
document.body?.append(script);
}
try {
String checkScriptLoaded = '''
!!window._Fingerprint;
''';
bool isScriptLoaded = js.context.callMethod('eval', [checkScriptLoaded]);
if(!isScriptLoaded){
loadScript();
}else{
execInit();
}
} catch (e) {
if (kDebugMode) {
print('Error fetching or executing JavaScript: $e');
}
}
}