flutter如何执行js代码
在Flutter中如何执行JavaScript代码?有没有现成的插件或方法可以实现这个功能?例如通过WebView或者其他方式。如果有具体的代码示例就更好了。
        
          2 回复
        
      
      
        Flutter中可通过flutter_js或webview_flutter插件执行JS代码。前者是纯Dart实现的JS引擎,后者在WebView中执行。例如使用flutter_js:JSEvaluator.evaluate('js代码')。
更多关于flutter如何执行js代码的实战系列教程也可以访问 https://www.itying.com/category-92-b0.html
在Flutter中执行JavaScript代码,可以通过以下两种主要方式实现:
1. 使用 webview_flutter 插件
这是最常用的方法,通过WebView来执行JS代码:
import 'package:webview_flutter/webview_flutter.dart';
WebViewController controller = WebViewController()
  ..setJavaScriptMode(JavaScriptMode.unrestricted)
  ..loadFlutterAsset('assets/index.html'); // 加载本地HTML文件
// 执行JavaScript代码
void executeJS(String jsCode) async {
  String result = await controller.runJavaScriptReturningResult(jsCode) as String;
  print('JS执行结果: $result');
}
// 调用示例
executeJS('document.title = "Flutter JS";');
executeJS('2 + 2'); // 返回 4
2. 使用 flutter_js 插件
专门为Flutter设计的JS执行引擎:
import 'package:flutter_js/flutter_js.dart';
final JavascriptRuntime jsRuntime = getJavascriptRuntime();
void executeJSCode() {
  // 执行简单JS代码
  JsEvalResult result1 = jsRuntime.evaluate('2 + 2');
  print(result1.stringResult); // 输出: 4
  
  // 执行复杂JS函数
  JsEvalResult result2 = jsRuntime.evaluate('''
    function multiply(a, b) {
      return a * b;
    }
    multiply(5, 3);
  ''');
  print(result2.stringResult); // 输出: 15
}
使用步骤
- 添加依赖:
dependencies:
  webview_flutter: ^4.4.2
  # 或
  flutter_js: ^0.7.0
- 权限配置(Android):
在 android/app/src/main/AndroidManifest.xml中添加:
<uses-permission android:name="android.permission.INTERNET" />
选择建议
- webview_flutter:适合需要完整浏览器环境或与网页交互的场景
- flutter_js:适合纯JS计算,性能更好,包体积更小
根据你的具体需求选择合适的方案即可。
 
        
       
             
             
            

