我需要构建一个相当简单的应用程序,但它需要在 PC 和 Mac 上运行。
它还需要作为独立的桌面应用程序在光盘或 USB 驱动器上重新分发。
最初我认为 AIR 非常适合这一点(它满足所有 API 要求),但困难在于使其可分发,因为应用程序需要安装 AIR 运行时才能运行。
我遇到了Shu Player作为一个选项,因为它似乎能够将 AIR 运行时与应用程序打包并进行(静默?)安装。
但是,这似乎违反了 Adobe 的 T&C(如此处所述),因此我不确定其合法性。
另一种选择可能是锌,但我没有测试过,所以我不确定它是否符合要求。
你会推荐或建议我检查什么?
非常感谢任何建议
编辑:还有一些关于单声道使用的讨论(尽管没有真正的结论): 这里和这里
EDIT2: 钛也可能符合要求,会检查一下。
任何人的更多评论?
EDIT3(一年后):我发布这个问题实际上已经快一年了,但似乎有些人仍然不时遇到它,甚至提供一个答案,甚至一年后。
以为我会稍微更新一下这个问题。最后我没有尝试 tcl/tk 选项,时间限制和对不同操作系统版本兼容性的不确定性导致我放弃了它作为一个选项。
我确实尝试了 Titanium,但虽然第一印象还不错,但它们确实比任何东西都在推动移动平台,而且恕我直言,桌面实现有点缺乏关注。还有一些关于某些操作系统上的一些 Visual Studio 运行时问题的报告(现在不记得细节了)。所以也丢弃了。
我最终选择了XULRunner。两大诉求是:
- Firefox 似乎在大多数操作系统版本上都是开箱即用的,所以我相信 XULRunner 应用程序可能与大多数系统兼容。为我节省了很多测试,结果证明它在所有平台上都运行得非常好,没有一个关于无法启动应用程序的报告
- 这是Javascript宝贝!语言学习曲线很小。要解决的主要问题是附加的 xpcom 接口是什么以及如何查询它们。
不利的一面:
- 我认为解决错误有时是一项艰巨的任务,venkman 调试器有点笨拙,最终使用控制台比什么都重要。
- sqlite 界面是桌面应用程序的一项重要资产,但是当某些东西不起作用时,我经常很难找到相关的错误信息——也许我做错了。
- 花了一点时间才弄清楚如何将该应用程序打包为适用于 PC 和 Mac 的独立应用程序。最后一种方法是拥有一个“shell” mac 应用程序和一个 shell pc 应用程序以及几个“编译”脚本,这些脚本将复制 shell 并将自定义源代码添加到它的正确位置。
- 对于某些人来说,最后一个潜在问题是,由于 xulrunner 应用程序的性质,您的源代码将与应用程序一起部署,如果您愿意,您可以使用混淆,但如果您想保护您的知识产权,请记住这一点
总而言之,跨平台应用程序的绝佳平台。我强烈推荐它。