使Macos应用程序脚本可:AppleScript工作,JavaScript不
我试图使我的应用程序可构图。 Therefore I created a simple .sdef file:
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE dictionary SYSTEM "file://localhost/System/Library/DTDs/sdef.dtd">
<dictionary title="AppleScriptTester App">
<suite name="AppleScriptTest" code="AQds" description="SDEF for Test.">
<command name="testCommand" code="dosSEiao" description="TEST">
<cocoa class="TestCommand"/>
</command>
</suite>
</dictionary>
In the Info.plist
I have:
<key>NSAppleScriptEnabled</key>
<true/>
<key>OSAScriptingDefinition</key>
<string>ScriptDefinitions.sdef</string>
In Swift I added this func:
@objc(TestCommand) class TestCommand: NSScriptCommand {
override func performDefaultImplementation() -> Any? {
print("testCommand called")
return nil
}
}
So then I can call it via AppleScript:
tell application "AppleScriptTest"
testCommand
end tell
That's working, the func is called. Now if I try it in JavaScript, it's not working anymore (I get the error -1708):
var AppleScriptTest = Application("AppleScriptTest");
AppleScriptTest.testCommand();
What am I doing wrong?
I try to make my app scriptable. Therefore I created a simple .sdef file:
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE dictionary SYSTEM "file://localhost/System/Library/DTDs/sdef.dtd">
<dictionary title="AppleScriptTester App">
<suite name="AppleScriptTest" code="AQds" description="SDEF for Test.">
<command name="testCommand" code="dosSEiao" description="TEST">
<cocoa class="TestCommand"/>
</command>
</suite>
</dictionary>
In the Info.plist
I have:
<key>NSAppleScriptEnabled</key>
<true/>
<key>OSAScriptingDefinition</key>
<string>ScriptDefinitions.sdef</string>
In Swift I added this func:
@objc(TestCommand) class TestCommand: NSScriptCommand {
override func performDefaultImplementation() -> Any? {
print("testCommand called")
return nil
}
}
So then I can call it via AppleScript:
tell application "AppleScriptTest"
testCommand
end tell
That's working, the func is called. Now if I try it in JavaScript, it's not working anymore (I get the error -1708):
var AppleScriptTest = Application("AppleScriptTest");
AppleScriptTest.testCommand();
What am I doing wrong?
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论