OSX Yosemite - 用于自动化访问枚举的 JavaScript

Jor*_*eed 5 javascript macos applescript osx-yosemite-beta javascript-automation

我开始尝试在 OS X Yosemite 中将我的一些 AppleScript 转换为 JavaScript,但我不明白我应该如何从应用程序访问枚举。例如 - Adium 的状态。

在 AppleScript 中:

tell application "Adium"
    if status type of global status is offline then
        log "offline"
    end if
end tell
Run Code Online (Sandbox Code Playgroud)

在 JavaScript 中,我不知道如何访问“离线”枚举:

if(Application('Adium').globalStatus.statusType == ?????) {
    console.log("offline");
}
Run Code Online (Sandbox Code Playgroud)

我尝试过简单的事情,比如“离线”,但没有成功。所有这些都是错误:

Application('Adium').StatusType("offline"); // error
Application('Adium').StatusType.offline;     // undefined
Application('Adium').StatusType.make({name:"offline"}); // error
Run Code Online (Sandbox Code Playgroud)

有人得到过这样的工作吗?

Jor*_*eed 3

虽然我无法进行枚举比较,但我已经能够完成这项工作。在用于自动化的 JavaScript 中,仅调用属性会返回 Apple 对象的 ObjectSpecifier。在本例中,statusType 是“AdiumRichText”类。

如果你把 () 放在属性后面,它会调用 getter 方法,该方法返回一个可以正常工作的 NSString (String)。所以这是代码:

if(Application('Adium').globalStatus().statusType() == "offline") {
    console.log("offline");
}
Run Code Online (Sandbox Code Playgroud)