【发布时间】:2018-01-18 12:54:13
【问题描述】:
我们正在使用 Flutter(我们的第一个 Flutter 应用)构建 Android 应用,并且需要能够使用外部脚本或插件扩展应用功能。我考虑使用像 https://github.com/LiquidPlayer/LiquidCore 这样的 javascript 引擎,但也许有办法在应用程序中运行外部 DART 代码?
明道加斯
【问题讨论】:
-
请添加有关您尝试完成的任务的更多信息。什么是外部 Dart 代码,它应该做什么? Dart 是在部署到设备之前编译好的,所以在 Flutter 中没有运行 Dart 代码,只有二进制代码(至少发布时,Android 上的 debug 模式实际上运行的是 Dart 代码)。
-
我们正在构建连接到不同内容提供商的播放器。所以我们想把这些连接器做成插件。此外,根据特定服务,此插件可能会更改 UI 中的某些功能,例如对于某些服务,下载按钮可能可用,但对于其他服务则不可用。插件将托管在我们的网站上,用户只安装他需要的插件。
-
也许可以做类似developer.android.com/guide/components/aidl.html 的事情,但我怀疑 Flutter 是否有直接的支持。您可能可以创建插件(Flutter 意义上的插件,Android 或 iOS 的原生代码,需要静态构建到部署的 apk),然后将与此类服务的通信委托给这个原生 Flutter 插件。
-
今晚面临同样的问题。经过一番研究,似乎飞镖是现在的问题。但这可能很快就会成为可能。 github.com/dart-lang/sdk/issues/10530