使用flutter_js在桌面Web端运行JS遇错:dart:ffi未找到
问题原因
- 这不是你的操作问题,是
flutter_js0.6.0版本的平台支持限制导致的。 dart:ffi是Dart为原生平台(Windows/macOS/Linux/iOS/Android)设计的API,用于对接C语言原生代码,Web平台完全不支持这个库。flutter_js0.6.0依赖dart:ffi来实现JavaScript运行时,所以在Web浏览器中运行必然触发找不到dart:ffi的报错;而Windows属于原生桌面平台,支持dart:ffi,因此代码能正常运行。
解决方案
- 若要在Web平台运行JS代码,直接用Dart官方的Web端JS交互方案:
- 使用
dart:js库(仅Web可用):可直接执行JS代码或调用浏览器全局JS函数,示例:import 'dart:js' as js; void executeJsCode() { // 执行一段JS代码 js.context.callMethod('eval', ['alert("Web端JS执行成功")']); // 调用已存在的全局JS函数 js.context['myGlobalFunction']('参数'); } - 使用
js包:通过注解实现类型安全的JS对象绑定,比直接用dart:js更易维护。
- 使用
- 如果需要跨平台的JS运行时,可寻找支持Web的替代库,比如
quickjs_dart(部分版本适配Web);也可以检查flutter_js是否有更新版本移除了Web平台对dart:ffi的依赖(0.6.0版本显然不支持Web)。
内容的提问来源于stack exchange,提问作者Orl13
相关产品推荐
相关产品推荐

