initJsEngine function
Future<JavascriptRuntime>
initJsEngine(
)
Implementation
Future<JavascriptRuntime> initJsEngine() async {
final jsRuntime = getJavascriptRuntime(xhr: false);
var a = jsRuntime.evaluate("""var window = global = globalThis;""");
if (a.isError) {
throw Exception(a.rawResult);
}
final expressionJs = await rootBundle
.loadString("packages/flutter_survey_js_expression/assets/index.js");
a = jsRuntime.evaluate(expressionJs);
if (a.isError) {
throw Exception(a.rawResult);
}
//validate
var loaded =
jsRuntime.evaluate("""var isLoaded = (typeof surveyjs == 'undefined') ?
"0" : "1"; isLoaded;
""").stringResult;
if (loaded == "0") {
throw Exception("Js unloaded");
}
return jsRuntime;
}