diff --git a/lib/flutter_js.dart b/lib/flutter_js.dart index 04621e1..7a545af 100644 --- a/lib/flutter_js.dart +++ b/lib/flutter_js.dart @@ -27,9 +27,11 @@ export 'quickjs-sync-server/quickjs_oasis_jsbridge.dart'; JavascriptRuntime getJavascriptRuntime({ bool forceJavascriptCoreOnAndroid = false, bool xhr = true, + bool useFlutterTerminal = true, Map? extraArgs = const {}, }) { JavascriptRuntime runtime; + JavascriptRuntime.useFlutterTerminal = useFlutterTerminal; if ((Platform.isAndroid && !forceJavascriptCoreOnAndroid)) { int stackSize = extraArgs?['stackSize'] ?? 1024 * 1024; runtime = QuickJsRuntime2(stackSize: stackSize); @@ -168,6 +170,7 @@ class FlutterJs { "convertTo": convertTo }; final rs = await _methodChannel.invokeMethod("evaluate", arguments); + final String? jsResult = rs is Map || rs is List ? json.encode(rs) : rs; if (DEBUG) { print("${DateTime.now().toIso8601String()} - JS RESULT : $jsResult"); diff --git a/lib/javascript_runtime.dart b/lib/javascript_runtime.dart index d05b93f..c90d649 100644 --- a/lib/javascript_runtime.dart +++ b/lib/javascript_runtime.dart @@ -63,6 +63,7 @@ class FlutterJsPlatformEmpty extends JavascriptRuntime { abstract class JavascriptRuntime { static bool debugEnabled = false; + static bool useFlutterTerminal = true; @protected JavascriptRuntime init() { @@ -112,11 +113,13 @@ abstract class JavascriptRuntime { sendMessage('ConsoleLog', JSON.stringify(['error', ...arguments])); } }"""); - onMessage('ConsoleLog', (dynamic args) { - args..removeAt(0); - String output = args.join(' '); - print(output); - }); + if (useFlutterTerminal) { + onMessage('ConsoleLog', (dynamic args) { + args..removeAt(0); + String output = args.join(' '); + print(output); + }); + } } void _setupSetTimeout() {