【问题标题】:Execute URL/Path in external program in Haxe在 Haxe 的外部程序中执行 URL/路径
【发布时间】:2016-08-17 17:58:55
【问题描述】:

是否可以通过 Haxe 的外部程序运行 URL 或路径?

类似 C# 中的 Process.Start("C:\") 的东西将在文件 Windows 资源管理器中打开驱动器 C(或 Process.Start("/home/user/Desktop") 将在 Linux 中使用此路径打开 Caja Mint),或者像 NodeJS 中的“Open”包(它会做同样的事情)。

或者我需要使用文本编辑器打开一些文本文件,默认情况下在系统中选择。 或者当我尝试运行 URL 时,必须使用该地址打开默认网络浏览器。

【问题讨论】:

    标签: haxe haxelib


    【解决方案1】:

    我想我可以做这个小代码:

    public static function execUrl (url:String) : Void {
        switch (Sys.systemName()) {
            case "Linux", "BSD": Sys.command("xdg-open", [url]);
            case "Mac": Sys.command("open", [url]);
            case "Windows": Sys.command("start", [url]);
            default:
        }
    }
    

    在类 unix 系统中可以使用程序“xdg-open”。它知道如何运行所需的路径/url,并且在 Windows 中这可以执行程序“启动”

    【讨论】:

    • 为了完整起见,我们可以在 Mac 上使用Sys.command("open", [url]);
    • 当您在 Android 上运行您的应用时,这似乎没有任何作用。 Sys.systemName() 返回 LinuxSys.command(...) 不启动浏览器。
    • 也许 xdg-open 在 Android 上不可用,请参见此处的示例:forum.kodi.tv/showthread.php?tid=235733
    最近更新 更多