gpt4 book ai didi

macos - AppleScript 中的正确处理程序以响应自定义 URL 处理小程序的 "open"Unix 命令

转载 作者:行者123 更新时间:2023-12-03 08:44:55 25 4
gpt4 key购买 nike

我正在尝试编写一个简单的 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 只是为了将其与操作系统接口(interface)。

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 在命令和 native 应用程序之间发挥同样的魔力。

最佳答案

为什么不在你的“运行处理程序”中处理它?像这样的东西...

on run argv
set theArg to item 1 of argv
if theArg starts with "sftp://" then
open location theArg
else
-- do the normal applescript code
end if
end run

或者你是说“open” unix 命令没有传递参数?

关于macos - AppleScript 中的正确处理程序以响应自定义 URL 处理小程序的 "open"Unix 命令,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13897551/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com