(macOS 自动化)如何不使用自带的脚本编辑器,直接与 JavaScript 交互?

由于 macOS 上自动化的需要,了解了 AppleScript 和脚本编辑器的知识,发现可以使用 JavaScript、AppleScript 写脚本,可以实现在通知中心显示通知等功能

但自带的“脚本编辑器” App 感觉不够灵活,想用 Atom / VS Code 等编辑器去写。

macOS 上是否可以用 ASCII text 格式的 JS 脚本文件实现发送通知的效果?有没有相关的 npm 库?如果有,那么有没有类似的 Python 包?

阅读 1.6k
1 个回答

可以使用这种

from os import system

message = 'xxx finished'
app = 'Terminal'

system(f'say "{message}"& osascript -e \'tell application "{app}" to display alert "{message}"\'&')

或者这种

#!/usr/local/bin/python3.4
# -*- coding: utf-8 -*-
# Crée par MarcAlx

import os

def displayNotification(message,title=None,subtitle=None,soundname=None):
    """
        Display an OSX notification with message title an subtitle
        sounds are located in /System/Library/Sounds or ~/Library/Sounds
    """
    titlePart = ''
    if(not title is None):
        titlePart = 'with title "{0}"'.format(title)
    subtitlePart = ''
    if(not subtitle is None):
        subtitlePart = 'subtitle "{0}"'.format(subtitle)
    soundnamePart = ''
    if(not soundname is None):
        soundnamePart = 'sound name "{0}"'.format(soundname)

    appleScriptNotification = 'display notification "{0}" {1} {2} {3}'.format(message,titlePart,subtitlePart,soundnamePart)
    os.system("osascript -e '{0}'".format(appleScriptNotification))

if __name__ == '__main__':
    #displayNotification("message","title","subtitle","Pop")
    #displayNotification("message","title","subtitle")
    displayNotification("message","title")
    #displayNotification("message")

本文参与了SegmentFault 思否面试闯关挑战赛,欢迎正在阅读的你也加入。
撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题
宣传栏