Nag*_*gyI 4 html javascript desktop dart
我打算用Dart创建一个跨平台的桌面应用程序.因为还没有现成的支持Dart的框架,我必须首先将Dart编译为Javascript.由于围绕HTML5构建的桌面框架提供了一些我计划使用的自定义Javascript API(文件系统访问,本机库支持等),因此无法在Dartium中进行完全开发.
我发现了以下可能符合我需求的框架,但我正在寻找使用Dart开发时的最佳实践.
一种选择是Electron框架.最初由GitHub为其Atom编辑器创建,它允许您使用Web技术为Linux,OS X或Windows构建跨平台应用程序.还有一个可用的Dart包装器.但是,此包装器缺乏对API的完全支持,并且似乎没有处于活动开发状态.
使用Electron的另一种方法是通过dart:js互操作调用所有电子和节点方法.这个方法比图书馆更成功.
Electron使用存储在其中的主进程main.js来运行应用程序,并创建新的BrowserWindows,它们会加载你的html.我发现在Javascript中简单地编写这个文件比较容易,因为包含太多的JS方法很麻烦,而且这个脚本相对较轻.但是,您可以使用main.dart文件并使用dart2js构建它.只要能找到main.js档案,电子就会很开心.
实际上,您可以像创建常规网页一样为应用程序构建页面.您可以在dart中编写它,在Dartium中调试,然后编译为Javascript以在您的应用程序中对其进行测试.当然,您的代码无法从浏览器访问节点API,因此您每次要使用这些API时都必须构建应用程序.(如果有人有更好的方法,请指出!)
最后一点需要注意:Dart的IO库不适用于Electron.这有点不足,因为访问文件对于几乎任何应用程序都很重要.您最好的选择是通过dart-js interop使用node的文件系统库.有时,这可能感觉有点像黑客(例如,使用回调时),但它完成了工作.
有第一个选项。
您可以使用 Dart 编写 Chrome 打包应用程序。
dart2js 可以将 dart 代码编译为 javascript。
感谢chrome.dart包,chrome API 可用。
Spark 就是一个很好的例子。请参阅https://github.com/dart-lang/spark