【发布时间】:2012-12-03 13:38:38
【问题描述】:
我正在尝试编写一个简单的 AppleScript 应用程序来处理我的 Mac 上的 sftp:// 和 sshfs:// URL。基于一个好的guide on how to create a custom URL handler app in AppleScript,我写了a small app如下,当我点击一个带有相应方案的URL时效果很好。实际工作是在调用 sshfs(FUSE) 的单独 shell 脚本中完成的,我使用 AppleScript 只是为了将其与操作系统接口。
on open location theURL
set cmd to (quoted form of (get POSIX path of (path to resource "sshfs.sh" in directory "Scripts"))) & " " & theUrl
do shell script cmd
end open location
但是,如果我使用终端中的 open 命令,此自定义 URL 处理程序 AppleScript 应用程序将无法工作,例如,
open sftp://host/path
我尝试添加其他处理程序,发现命令行方式调用on run argv 处理程序而不是我编写的处理程序,但无法弄清楚如何访问传递的 URL 参数。当直接调用脚本时,我可以正确访问 URL,例如,osascript my.applescript sftp://host/path。尝试了 ASObjC Runner,但没有帮助。
AppleScript 应用程序中是否有标准处理程序或方法来接收通过open Unix 命令传递的参数? 似乎它依赖于 AppleEvents,但我找不到好的描述如何使用 AppleScript 在命令和本机应用程序之间发挥相同魔力的参考。
【问题讨论】:
标签: macos url applescript appleevents