Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/macos/10.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Macos 单击apple通知时重定向到applescript编辑器_Macos_Notifications_Applescript - Fatal编程技术网

Macos 单击apple通知时重定向到applescript编辑器

Macos 单击apple通知时重定向到applescript编辑器,macos,notifications,applescript,Macos,Notifications,Applescript,我正在使用 osascript -e 'display notification "Lorem ipsum dolor sit amet" with title "Title"' 在Mac中显示通知。但是,单击通知后,我将被重定向到applescript编辑器。我是否可以在单击生成的通知时将用户重定向到url或打开目录?因此,是的,有一种方法可以满足您的要求 这是一个 这是一个简化版本,可以做您喜欢的事情,但是您必须将其保存为应用程序并在其上拖动一个文件 on open theItems

我正在使用

osascript -e 'display notification "Lorem ipsum dolor sit amet" with title "Title"'

在Mac中显示通知。但是,单击通知后,我将被重定向到applescript编辑器。我是否可以在单击生成的通知时将用户重定向到url或打开目录?

因此,是的,有一种方法可以满足您的要求

这是一个

这是一个简化版本,可以做您喜欢的事情,但是您必须将其保存为应用程序并在其上拖动一个文件

on open theItems
    display notification "Open stackoverflow ?" with title "Stackoverflow"
    delay 2
end open

on run

    tell application "Safari"
        tell window 1
            set current tab to (make new tab with properties {URL:"http://www.stackoverflow.com"})
        end tell
    end tell
end run

仅当脚本保存为应用程序(最好是保持打开的应用程序)时,才会调用运行处理程序。在任何情况下,当有人单击通知时,应用程序必须仍在运行。您无法从简单的osascript字符串中获得此行为

您可以让osascript运行编译后的脚本文件(可以持久存储属性),但仍然需要区分运行脚本时发生的运行事件和有人单击通知时调用的运行事件

我可以在此提出几个解决方案

  • 使用python库发出通知并忘记 appleScript/OSA。您可以在这里找到一些信息和各种解决方案 堆栈溢出链接:

  • 设置一个保持打开状态的appleScript应用程序作为一种“通知服务器”,并在需要设置一些通知时向该应用程序发送消息(可能使用OSAscript,除非您可以从python向“服务器”发送原始apple事件)。与我的第一个建议相比,这很棘手,而且似乎过于复杂。特别是,您可能仍然需要修改隐私设置(特别是在Mavericks或更高版本上),以允许OSAscript访问系统事件

这里有几个链接可以指导你使用后一种方法,但我真的认为第一个建议会让你走得更远,眼泪更少:


我不会使用这个简化版本。为了激活通知而必须将文件拖到一个小水滴上,这肯定不能实现他想要的。我想不出任何有用的情况。您只需要一个运行处理程序,除非它检测到通知被通知选择调用,否则它将发出通知,如果是,则启动一个目录或URL。我不确定如何提示初始通知。但是,此答案确实显示了如何使用显示通知的单击事件,只是它没有“显示如何使用显示通知的单击事件”,除非您通过将文件拖动到水滴上来启动通知。OP希望以编程方式启动,正如他在osascript调用中指出的那样。但是,他可以修改macosxautomation中的一个来实现这一点,但所有内容都需要在运行处理程序中。我需要通过python程序触发一个通知。单击通知时,我需要打开一个url,该url也需要从python进行编程设置。根据这一点,当用户单击通知时,将调用运行处理程序。然而,这似乎不适合我。