5

我需要构建一个相当简单的应用程序,但它需要在 PC 和 Mac 上运行。

它还需要作为独立的桌面应用程序在光盘或 USB 驱动器上重新分发。

最初我认为 AIR 非常适合这一点(它满足所有 API 要求),但困难在于使其可分发,因为应用程序需要安装 AIR 运行时才能运行。

我遇到了Shu Player作为一个选项,因为它似乎能够将 AIR 运行时与应用程序打包并进行(静默?)安装。
但是,这似乎违反了 Adob​​e 的 T&C(如此处所述),因此我不确定其合法性。

另一种选择可能是锌,但我没有测试过,所以我不确定它是否符合要求。

你会推荐或建议我检查什么?

非常感谢任何建议

编辑:还有一些关于单声道使用的讨论(尽管没有真正的结论): 这里这里

EDIT2也可能符合要求,会检查一下。

任何人的更多评论?

EDIT3(一年后):我发布这个问题实际上已经快一年了,但似乎有些人仍然不时遇到它,甚至提供一个答案,甚至一年后。

以为我会稍微更新一下这个问题。最后我没有尝试 tcl/tk 选项,时间限制和对不同操作系统版本兼容性的不确定性导致我放弃了它作为一个选项。

我确实尝试了 Titanium,但虽​​然第一印象还不错,但它们确实比任何东西都在推动移动平台,而且恕我直言,桌面实现有点缺乏关注。还有一些关于某些操作系统上的一些 Visual Studio 运行时问题的报告(现在不记得细节了)。所以也丢弃了。

我最终选择了XULRunner。两大诉求是:

  • Firefox 似乎在大多数操作系统版本上都是开箱即用的,所以我相信 XULRunner 应用程序可能与大多数系统兼容。为我节省了很多测试,结果证明它在所有平台上运行得非常好,没有一个关于无法启动应用程序的报告
  • 这是Javascript宝贝!语言学习曲线很小。要解决的主要问题是附加的 xpcom 接口是什么以及如何查询它们。

不利的一面:

  • 我认为解决错误有时是一项艰巨的任务,venkman 调试器有点笨拙,最终使用控制台比什么都重要。
  • sqlite 界面是桌面应用程序的一项重要资产,但是当某些东西不起作用时,我经常很难找到相关的错误信息——也许我做错了。
  • 花了一点时间才弄清楚如何将该应用程序打包为适用于 PC 和 Mac 的独立应用程序。最后一种方法是拥有一个“shell” mac 应用程序和一个 shell pc 应用程序以及几个“编译”脚本,这些脚本将复制 shell 并将自定义源代码添加到它的正确位置。
  • 对于某些人来说,最后一个潜在问题是,由于 xulrunner 应用程序的性质,您的源代码将与应用程序一起部署,如果您愿意,您可以使用混淆,但如果您想保护您的知识产权,请记住这一点

总而言之,跨平台应用程序的绝佳平台。我强烈推荐它。

4

5 回答 5

5

Tcl/Tk 拥有最好的封装解决方案之一。您可以使用特定于平台的二进制文件轻松包装跨平台应用程序(在完全工作的虚拟文件系统中实现),以获得几乎适用于任何现代桌面系统的单个文件可执行文件。在 google 上搜索术语 starkit、starpack 和 tclkit。与当今的许多可执行文件相比,这样的打包二进制文件很小。

许多人嘲笑 Tk 是“旧的”或“不成熟的”,但它是最古老、最稳定的工具包之一。当存在此类小部件时,它使用本机小部件。

然而,Tcl/Tk 的一个显着缺点是它缺乏任何类型的打印支持。如果您的应用程序需要打印,您将不得不有点创意。有特定于平台的解决方案,以及生成 postscript 文档的能力,以及创建 pdf 的库,但这需要一些额外的努力。

于 2010-03-01T01:02:49.880 回答
2

Java 可能是您最好的选择,尽管并非所有的 Windows PC 都必须具有 Java(大多数应该)。JavaFX 足够新,你不能指望它——你可能会发现很多机器运行 Java 1.5 或(不寒而栗)1.4。我相信最近的 Mac OS 仍然附带 1.5(最新版本可能已更改为 1.6)。

于 2010-03-01T01:00:48.540 回答
0

AIR 可能是一种选择,但前提是您不介意分发两个不同的文件(离线运行时安装程序和您的应用程序),并希望用户运行一个然后另一个。您必须在 Adob​​e 的网站上提交一份在线表格,表明您同意按原样分发离线安装程序,而不是在他们为您提供安装程序之前挖掘单个 DLL 或其他任何内容。

不幸的是,目前没有办法从一个文件中同时安装 AIR 应用程序和运行时。我不确定与 Shu 的交易是什么,或者它是否在做任何不洁之事。

于 2010-03-21T14:49:33.257 回答
0

我会推荐zink。它具有桌面所需的所有功能。但是,我上次使用它时有点小故障。

我试图将一个 6M 的文件写入磁盘而挂断了电话。认为它低谷并更改了代码以一次写入 512K 块(3 分钟工作,快速)。

可能它仍然有一些令人讨厌的小故障,比如让你在 root lvl 上思考,但易用性和功能实在是太甜了,不容忽视。

于 2011-05-04T09:48:37.517 回答
0

考虑 JavaFX 它可以在任何地方使用现代 JRE 运行 ..!

于 2010-03-01T00:56:49.767 回答