我需要专门打开Safari,而不是默认浏览器。如果使用Chrome / Firefox /默认浏览器,则我的应用仍需要在Safari中打开URL。
我已经上网了,但是我只能看到在这样的默认浏览器中打开...
let url = URL(string: host)!
NSWorkspace.shared.open(url)
...仅在用户默认使用Safari时才适用。
如何专门在Safari中打开URL?
不重复-另一个问题不在Swift中...
答案 0 :(得分:0)
好吧,我找到了解决方案,但这有点hack ...
用于制作bash命令的Shell函数:
func shell(command: String) -> String {
var output = ""
var error = ""
do {
let task = Process()
task.launchPath = "/bin/bash"
task.arguments = ["-c", command]
let outputPipe = Pipe()
task.standardOutput = outputPipe
let errorPipe = Pipe()
task.standardError = errorPipe
try task.run()
let outputData = outputPipe.fileHandleForReading.readDataToEndOfFile()
output = NSString(data: outputData, encoding: String.Encoding.utf8.rawValue)! as String
let errorData = errorPipe.fileHandleForReading.readDataToEndOfFile()
error = NSString(data: errorData, encoding: String.Encoding.utf8.rawValue)! as String
}
catch let err as NSError{
output = err.localizedDescription
}
return error + "\n" + output + "\n"
}
在bash中,您可以使用:open -a safari www.blahblahblah.com
因此在Swift中,我可以这样实现:
shell(command: "open -a safari " + host)
有点hack,但是可以用