jxa

直接在 node 中访问用于自动化 API 的 macOS JavaScript。「Access macOS JavaScript for Automation APIs directly in node」

  • 所有者: wtfaremyinitials/jxa
  • 平台: Linux, Mac, Windows
  • 许可证:
  • 分类:
  • 主题:
  • 喜欢:
    0
      比较:

Github星跟踪图

jxa

直接在 Node 中访问 macOS JavaScript for Automation API

osa2 模块类似,但具有同步调用和更多'魔术'的API。 如果您正在构建库,请使用 osa2 。这个模块最适合小脚本。

安装

模块: npm install --save jxa

REPL: npm install -g jxa

用法

与 Apple 官方的自动化运行时 JavaScript 进行交互的方式与这里描述的相同,唯一的区别是,您必须通过要求此模块来获取 Application 对象的句柄。

var Application = require('jxa').Application;
var iTunes = Application('iTunes');
var name   = iTunes.currentTrack.name();
var artist = iTunes.currentTrack.artist();
console.log(name + ' by ' + artist);
// Pay No Mind (feat. Passion Pit) by Madeon
iTunes.pause();
// Music pauses
iTunes.play();
// Music plays

如果您全局安装 JXA( npm install -g jxa ),则会提供一个 REPL 来将 Application() 公开在全局范围内。

will@laptop ~ $ jxa-node
> Application('iTunes')
[object JXAReference => [object Application]]
> Application('iTunes').play()
undefined
> Application('iTunes').currentTrack
[object JXAReference => [object ObjectSpecifier]]
> Application('iTunes').currentTrack.name()
'No Problem (feat. Lil Wayne & 2 Chainz)'
>

主要指标

概览
名称与所有者wtfaremyinitials/jxa
主编程语言JavaScript
编程语言JavaScript (语言数: 1)
平台Linux, Mac, Windows
许可证
所有者活动
创建于2016-05-26 19:36:34
推送于2019-04-01 19:55:15
最后一次提交2017-04-23 15:41:59
发布数0
用户参与
星数306
关注者数9
派生数10
提交数34
已启用问题?
问题数2
打开的问题数1
拉请求数0
打开的拉请求数1
关闭的拉请求数2
项目设置
已启用Wiki?
已存档?
是复刻?
已锁定?
是镜像?
是私有?

jxa



Access macOS JavaScript for Automation APIs directly in node

Similar to the osa2 module, but with synchronous calls and an API with a bit more 'magic'.
If you're building a library, use osa2. This module is best suited for small scripts.

Installation

Module: npm install --save jxa

REPL: npm install -g jxa

Usage

Interact with apps in the same way you would with Apple's official JavaScript for automation runtime, as described here. The only difference is that you must get a handle to the Application object by requiring this module.

var Application = require('jxa').Application;

var iTunes = Application('iTunes');

var name   = iTunes.currentTrack.name();
var artist = iTunes.currentTrack.artist();

console.log(name + ' by ' + artist);
// Pay No Mind (feat. Passion Pit) by Madeon

iTunes.pause();
// Music pauses

iTunes.play();
// Music plays

If you install JXA globally (npm install -g jxa) a REPL is provided that exposes Application() in the global scope.

will@laptop ~ $ jxa-node
> Application('iTunes')
[object JXAReference => [object Application]]
> Application('iTunes').play()
undefined
> Application('iTunes').currentTrack
[object JXAReference => [object ObjectSpecifier]]
> Application('iTunes').currentTrack.name()
'No Problem (feat. Lil Wayne & 2 Chainz)'
>