You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

AppleScript如何在两个自制应用之间传递参数

AppleScript 跨应用传参最优实现方案

方案1:自定义处理程序调用(首推)

这是Apple官方推荐的跨脚本应用通信方式,无中间介质,调用逻辑清晰。

App2 改造步骤

  1. 将业务逻辑封装为可被外部调用的自定义处理程序,示例代码:
-- 外部可调用的参数接收处理程序
on handleURL(inputURL)
    -- 此处替换为原有业务逻辑,直接使用传入的inputURL变量即可
    # does Something
end handleURL

-- 可选:保留App2单独启动时的运行逻辑,不需要可删除
on run
    -- 单独打开App2时执行的代码
end run
  1. 导出App2时,在存储选项中勾选「可被脚本控制」(英文系统为 Allow AppleScript manipulation),否则外部应用无法调用它的自定义处理程序。

App1 改造代码

直接在唤起App2的同时调用其自定义处理程序传参:

on open location this_URL
    tell application "App2"
        activate
        handleURL(this_URL)
    end tell
end open location

方案2:启动参数传参(无需开启脚本控制权限)

如果不希望给App2开放脚本控制权限,可以通过启动参数的方式传递变量,适合轻量化场景。

App2 改造代码

修改run处理程序接收启动参数:

on run argv
    -- 判断是否有传入参数
    if (count of argv) > 0 then
        set this_URL to item 1 of argv
        -- 此处替换为原有业务逻辑
        # does Something
    end if
end run

App1 改造代码

通过shell的open命令带参数启动App2:

on open location this_URL
    -- quoted form 会自动处理URL中的特殊字符,避免转义错误
    do shell script "open -a App2 --args " & quoted form of this_URL
end open location

原有剪贴板方案的弊端

通过剪贴板中转参数会覆盖用户当前的剪贴板内容,且存在并发场景下的内容篡改风险,仅适合临时测试使用,不推荐生产环境使用。

内容的提问来源于stack exchange,提问作者Shubham Kumar

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.03 11:48:03