AppleScript 无法通过终端获取参数值



我正在开发Java GUI,我正在尝试制作一个按钮,可以使用给定的电话号码开始FaceTime通话。这是 java 代码的简化版本。

String cellNum = "18001234567";
try {
Runtime.getRuntime().exec("open /Users/faris/Desktop/call.app --args " + cellNum);
} catch (IOException e) {
e.printStackTrace();
}

在研究了如何做到这一点之后,我复制了我在网上找到的AppleScript应用程序的一部分,我将其命名为 call.app 并对其进行了修改,以便它接受输入参数电话号码,而不是手动将其输入到脚本中。我已经使用输入的实际电话号码而不是输入变量运行该程序,并且它工作正常,因此我知道问题在于传递参数。

call.app

on run args
set input to first item of args
open location "tel://" & input & "?audio=yes"
delay 1
tell application "System Events"
key code 36
end tell
end run

这是我每次从AppleScript收到的错误。

Can’t get item 1. (-1728)

我以前从未使用过AppleScript,所以目前我完全迷失了。在SO的任何地方都没有找到类似的东西。任何建议将不胜感激。

原因:

苹果脚本中的Error -1728"Can't get «script»",表示first item of args是脚本对象引用。 这意味着命令行参数不会传递给 AppleScript 的run处理程序。

溶液:

与其将 AppleScript 另存为小程序,不如将其另存(导出(为.scpt.applescript文件。 然后用exec(...)Java 命令替换:

exec("osascript /path/to/applescript " + cellNum);

最新更新