从命令行 Dart 脚本启动 Web 浏览器

Posted

技术标签:

【中文标题】从命令行 Dart 脚本启动 Web 浏览器【英文标题】:Launching a web browser from command-line Dart script 【发布时间】:2015-10-08 22:30:01 【问题描述】:

我想从我用 Dart 编写的一个小型命令行应用程序打开一个给定的 URL。有什么简单的方法吗? 这类似于 Java 中的 Desktop#browse(URI)。

【问题讨论】:

应用应该在什么操作系统上运行? 【参考方案1】:

试试这个代码:

import "dart:io";

void runBrowser(String url) 
  var fail = false;
  switch (Platform.operatingSystem) 
    case "linux":
      Process.run("x-www-browser", [url]);
      break;
    case "macos":
      Process.run("open", [url]);
      break;
    case "windows":
      Process.run("explorer", [url]);
      break;
    default:
      fail = true;
      break;
  

  if (!fail) 
    print("Start browsing...");
  

【讨论】:

谢谢!根据@günter-zöchbauer 的回复,使用 xdg-open 是 Linux 的最佳选择。【参考方案2】:

您需要使用Process.run()Process.start() 启动它,并且您必须自己处理操作系统差异。

开启 - Linux 你可以使用Linux: command to open URL in default browser(需要安装但通常是默认的) - 视窗https://superuser.com/questions/36728/can-i-launch-urls-from-command-line-in-windows - OSX http://osxdaily.com/2011/07/18/open-url-default-web-browser-command-line/

【讨论】:

【参考方案3】:

在Windows上调用默认浏览器:

Process.run("start", [url], runInShell: true);

(恐怕只在 Windows 7 上测试过)

【讨论】:

以上是关于从命令行 Dart 脚本启动 Web 浏览器的主要内容,如果未能解决你的问题,请参考以下文章

从命令行运行 PHP 脚本

在退出 java 启动的命令行命令或 shell 脚本之前提取进程环境

Hive基本使用——命令行

如何从命令行启动CouchDB

在QtCreator命令行上指定GDB启动脚本

命令行通过执行shell脚本启动java类,命令行“卡住”or“挂起”or“停顿”,不能输入新的命令了,怎么办