因为 Go 可以编译 Windows Darwin Linux 三个平台的二进制文件,如果编写一个 Web 项目,启动后可以自动打开浏览器,那就非常方便了。



首先看下三个平台打开浏览器的命令

Darwin

1
$ open http://baidu.com

Windows

1
$ start http://baidu.com

Linux

1
$ xdg-open http://baidu.com

接下来需要 Go 能区分平台,这里需要 runtime 包。

1
2
3
import "runtime"
platform := runtime.GOOS
// darwin windows linux

好接下来就可以写代码了

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
package main
// 打开系统默认浏览器

import (
"fmt"
"os/exec"
"runtime"
)

var commands = map[string]string{
"windows": "start",
"darwin": "open",
"linux": "xdg-open",
}

func Open(uri string) error {
run, ok := commands[runtime.GOOS]
if !ok {
return fmt.Errorf("don't know how to open things on %s platform", runtime.GOOS)
}

cmd := exec.Command(run, uri)
return cmd.Start()
}

func main() {
Open("http://baidu.com")
}
03-16 19:49