点击苹果通知时重定向到applescript编辑器

Pra*_*ani 12 macos notifications applescript

我在用

osascript -e 'display notification "Lorem ipsum dolor sit amet" with title "Title"'
Run Code Online (Sandbox Code Playgroud)

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

bre*_*ung 5

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

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

我可以在这里提出几个解决方案。

  • 使用 python 库来触发通知并忘记 appleScript/OSA。您可以在此 stackoverflow 链接中找到一些信息和各种解决方案: Python post osx notification

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

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

http://jacobsalmela.com/bash-script-enable-access-assistive-devices-programmatically-os-x-mavericks-10-9-x-simulate-keyrinkles/

http://support.apple.com/kb/HT6026?viewlocale=en_US&locale=en_US


mcg*_*ilm 0

所以是的,有一种方法可以做你想做的事

这是一个教程here

这是一个简化版本,可以执行您喜欢的操作,但是您必须将其另存为应用程序并在其上拖动文件。

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
Run Code Online (Sandbox Code Playgroud)