flutter_js_engine

Last updated:

0 purchases

flutter_js_engine Image
flutter_js_engine Images
Add to Cart

Description:

flutter js engine

JsEngine #
JsEngine is a JavaScript extension based on the webview_flutter plugin's built-in JS Runtime. It allows dynamic execution of JavaScript scripts and is more lightweight compared to third-party libraries like flutter_js. It does not require additional size, supports JS HTTP network requests, SP data persistence, and promises. As it is implemented based on the WebView kernel, it can pass Google and AppStore reviews.
HTTP Requests #
JsEngine has built-in network request interfaces that support promise syntax.
JS HTTP Request Example:
HttpSender.sendRequest("https://www.baidu.com/s", null, null, {
"wd": "%E6%97%A5%E5%8E%86"
}, "GET").then((value) =>{
console.log("sendRequest ok: ", value);
run_callback(value); // Return data to Dart layer
});
copied to clipboard
Data Storage #
JsEngine supports persistent data storage in a key-value format, also supporting promise syntax.
JS Store and Retrieve Data Example:
SpStorage.set("ijk", "oh yep");
SpStorage.get("ijk").then((value) =>{
console.log("SpStorage got ijk promise value:", value);
});
copied to clipboard
Parameter Passing #
⚠️ JsEngine uses variables with the 'run_' prefix as built-in global variables.
Interfaces pass parameters via params, which can be accessed in JS scripts through the built-in run_params:
JsEngine.runCode('console.log("run_params:", run_params);', params: 'dadada');
Accessing parameters in JS:
copied to clipboard
console.log("run_params:", run_params);
copied to clipboard
Runtime Information #
Retrieve JS runtime environment information:
JsEngine.runCode('console.log("run_info:", run_info['system']);');
copied to clipboard
Supported information includes:



Field Name
Definition




system
System


system_ver
System Version


locale
Language Code


engine_ver
Engine Version



Preload Global Library #
By default, JsEngine.runCode() runs in an isolated environment, but JsEngine also supports a global mode:
JsEngine.loadLib('');
copied to clipboard
Proxy Log Output #
Proxy logs allow JS logs to be output to the Dart layer:
JsEngine.setLogProxy((tag, log) {
print('$tag: $log');
});
copied to clipboard
JS Call:
run_log("hello world!");
copied to clipboard
Complete Example #
JsEngine.setDebugMode(true);
JsEngine.setLogProxy((tag, log) {
print(log);
});
JsEngine.runCode('''
console.log("run_params:", run_params);
console.log("run_info:", run_info['system']);
HttpSender.sendRequest("https://www.baidu.com/s", null, null, {
"wd": "%E6%97%A5%E5%8E%86"
}, "GET").then((value) =>{
console.log("sendRequest ok: ", value);
run_callback(value);
});
SpStorage.set("abc", "என்ன Yogi இப்படி சொல்லிட்ட |");
SpStorage.set("ijk", "oh yep");
SpStorage.get("abc").then((value) =>{
console.log("SpStorage got abc promise value:", value);
});
SpStorage.get("ijk").then((value) =>{
console.log("SpStorage got ijk promise value:", value);
});
''', params: 'dadada', callback: (json) {
logI('JsEngine-console runJsCode res: $json');
}).then((json) {
logI('JsEngine-console future runJsCode res: $json');
});
copied to clipboard

Author: Ruilin.z

License:

For personal and professional use. You cannot resell or redistribute these repositories in their original state.

Files In This Product:

Customer Reviews

There are no reviews.