【问题标题】:Determine programmatically if an AIR app was launched from the command line?以编程方式确定 AIR 应用程序是否从命令行启动?
【发布时间】:2011-07-05 10:55:34
【问题描述】:

是否可以通过编程方式确定 AIR 应用程序是从命令行启动还是通过双击应用程序图标启动的?

我希望能够做类似的事情:

`if (e.launchedFromCLI) { foo(); }`

【问题讨论】:

    标签: apache-flex air adobe


    【解决方案1】:

    尝试收听NativeApplicationINVOKE 事件,这是我所知道的唯一可以找到此类信息的地方。

    似乎您无法区分 CMD 启动和图标启动 - 除非您在 CMD 中传递一些参数。

    http://help.adobe.com/en_US/AIR/1.5/jslr/flash/desktop/NativeApplication.html#event:invoke

    【讨论】:

    • 我已经在听 INVOKE 并解析参数了。问题是,如果我通过双击关联文件来运行应用程序,我会得到一个参数(文件的路径),如果我从命令行运行,我会接受多个参数。我可以发明一些方案,例如以“-”字符开头所有命令行参数,并假设如果我得到一个以“-”开头的参数 not 它来自非 CLI 启动, 但这感觉有点不合时宜。
    • @Jamie Bullock “问题是,如果我通过双击关联文件来运行应用程序,我会得到一个参数(文件的路径),如果我从命令行运行,我会接受多个论据。”我不明白这会给您的应用带来什么问题。
    • @www.Flextras.com 当我得到 exactly one 参数时,这是一个问题。在这种情况下,确定参数代表什么的唯一方法是检查其内容并采用一些启发式方法,例如 if (args[0].substr( 0, 1 ) != "-") {}。如果 Flex 提供一种方法来以编程方式确定给定参数是否表示从图标启动传递的路径,那就更好了。
    • 我不知道 AIR 是否知道启动应用程序的原因。如果操作系统在命令行上使用文件名启动执行,AIR 怎么知道用户没有在命令行上使用文件名启动它(通过操作系统)。松散耦合的模块有很多好处,但这意味着它们彼此之间的了解并不多。
    猜你喜欢
    • 2014-06-08
    • 2019-01-29
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-09-23
    • 2011-10-17
    • 2011-06-29
    • 2011-10-12
    相关资源
    最近更新 更多