github.com/yinchengtsinghua/golang-Eos-dpos-Ethereum@v0.0.0-20190121132951-92cc4225ed8e/cmd/internal/browser/browser.go (about) 1 2 //此源码被清华学神尹成大魔王专业翻译分析并修改 3 //尹成QQ77025077 4 //尹成微信18510341407 5 //尹成所在QQ群721929980 6 //尹成邮箱 yinc13@mails.tsinghua.edu.cn 7 //尹成毕业于清华大学,微软区块链领域全球最有价值专家 8 //https://mvp.microsoft.com/zh-cn/PublicProfile/4033620 9 //版权所有2016 Go作者。版权所有。 10 //此源代码的使用受BSD样式的控制 11 // 12 13 //包浏览器提供了与用户浏览器交互的实用程序。 14 package browser 15 16 import ( 17 "os" 18 "os/exec" 19 "runtime" 20 ) 21 22 //命令返回用于打开URL的可能命令的列表。 23 func Commands() [][]string { 24 var cmds [][]string 25 if exe := os.Getenv("BROWSER"); exe != "" { 26 cmds = append(cmds, []string{exe}) 27 } 28 switch runtime.GOOS { 29 case "darwin": 30 cmds = append(cmds, []string{"/usr/bin/open"}) 31 case "windows": 32 cmds = append(cmds, []string{"cmd", "/c", "start"}) 33 default: 34 cmds = append(cmds, []string{"xdg-open"}) 35 } 36 cmds = append(cmds, 37 []string{"chrome"}, 38 []string{"google-chrome"}, 39 []string{"chromium"}, 40 []string{"firefox"}, 41 ) 42 return cmds 43 } 44 45 //open尝试在浏览器中打开URL并报告是否成功。 46 func Open(url string) bool { 47 for _, args := range Commands() { 48 cmd := exec.Command(args[0], append(args[1:], url)...) 49 if cmd.Start() == nil { 50 return true 51 } 52 } 53 return false 54 }