我正在使用 NSAppleScript 告诉 Safari 返回所有打开的选项卡的 URL,如下所示:
let script = NSAppleScript.init(source: "tell application \"Safari\" to get URL of every tab of every window")
var errorInfo: NSDictionary?
let eventDescriptor:NSAppleEventDescriptor = (script?.executeAndReturnError(&errorInfo))!
print(eventDescriptor.stringValue)
以上返回零。告诉返回当前 URL 确实有效。
"tell application \"Safari\" to return URL of front document as string"
<小时/>
如何获取每个窗口的每个选项卡中所有打开的 URL?
最佳答案
结果将是一个表示字符串列表列表的 NSDescriptor。你要么:
- 在返回之前,使用合适的文本项分隔符将列表强制转换为 AppleScript 中的字符串,然后您可以将字符串拆分为 Swift 中的字符串列表(作弊),
- 使用几个嵌套循环自行解压列表描述符(乏味),或者
- 放弃
NSAppleScript
并使用 AppleScript-ObjC bridge相反(设置起来有点繁琐,但迄今为止最简单且最容易使用)。
关于swift - 如何获取 Safari 中每个窗口的每个选项卡中所有打开的 URL?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39327081/