每当您选择不处理指定事件的 AppleScript 时,您都会收到错误 -1708 。
例如,如果您的脚本只实现了on message sent
,但您设置此脚本在每次收到消息时运行,您将收到错误 -1708。这是因为您的脚本只知道如何处理传出消息,而不知道如何处理传入消息,因此出现错误 -1708。
现在这里有一些有趣的事情......
如果您尝试对Mix Message Case.applescript
事件Message Received
、Message Received in Active Chat
和使用默认脚本Message Sent
。第一个和最后一个工作正常,但您会收到一个 -1708 错误活动聊天事件。我们可以推断这意味着脚本没有处理事件Message Received in Active Chat
。因此,现在看来,即使是 Apple 也无法处理此事件。
OS X Mavericks 更新:
此更新修复了前面提到的错误。如果您选择 Apple 的示例脚本Speak Events.applescript,您会注意到它可以完美地处理接收到活动聊天室的消息。如果您检查代码,您会注意到它正在使用该on active chat message received
方法。我们现在可以在我们的脚本中使用它。由于我不再安装旧版本,因此我无法测试相同的方法是否适用于以前的版本。
以下是 Speak Events.applescript 中的代码:
on active chat message received with eventDescription
say eventDescription
end active chat message received
另请注意,您不再为特定事件指定要运行的单个脚本。相反,您为 Messages 事件指定单个脚本处理程序。这意味着您必须实现所有事件以避免获得 -1708 方法。请注意,在示例脚本中,Apple 甚至有注释# The following are unused but need to be defined to avoid an error
。这是一个可以用作脚本起点的模板:
using terms from application "Messages"
# The following are unused but need to be defined to avoid an error
on message sent theMessage with eventDescription
end message sent
on message received theMessage with eventDescription
end message received
on chat room message received with eventDescription
end chat room message received
on active chat message received with eventDescription
end active chat message received
on addressed message received theMessage from theBuddy for theChat with eventDescription
end addressed message received
on received text invitation with eventDescription
end received text invitation
on received audio invitation theText from theBuddy for theChat with eventDescription
end received audio invitation
on received video invitation theText from theBuddy for theChat with eventDescription
end received video invitation
on received local screen sharing invitation from theBuddy for theChat with eventDescription
end received local screen sharing invitation
on buddy authorization requested with eventDescription
end buddy authorization requested
on addressed chat room message received with eventDescription
end addressed chat room message received
on received remote screen sharing invitation with eventDescription
end received remote screen sharing invitation
on login finished with eventDescription
end login finished
on logout finished with eventDescription
end logout finished
on buddy became available with eventDescription
end buddy became available
on buddy became unavailable with eventDescription
end buddy became unavailable
on received file transfer invitation theFileTransfer with eventDescription
end received file transfer invitation
on av chat started with eventDescription
end av chat started
on av chat ended with eventDescription
end av chat ended
on completed file transfer with eventDescription
end completed file transfer
end using terms from
如果您从这个脚本开始并只实现您需要的方法(同时保持其余部分不变),那么您应该避免所有 -1708 错误。