Slide 1

Slide 1 text

@rizumita JavaScript for Automation Release Notes͔Β

Slide 2

Slide 2 text

͸͡Ίʹ ❖ MacͰͷࣗಈԽεΫϦϓτݴޠ͸AppleScript ❖ AppleScript͸͋·Γར༻͸޿͕͍ͬͯͳ͍ ❖ AppleScript͸ಛघͳߏจ ❖ Yosemite͔ΒJavaScript͕ར༻Մೳʹͳͬͨ ❖ JavaScript for Automationͱݺ͹ΕΔ

Slide 3

Slide 3 text

جຊ - AppleScript tell application "Safari" set theWindow to first window set theTab to current tab of theWindow do JavaScript "alert(document.title)" in theTab end tell

Slide 4

Slide 4 text

جຊ - JavaScript safari = Application('Safari') window = safari.windows[0] tab = window.currentTab safari.doJavaScript('alert(document.title)', { in: tab })

Slide 5

Slide 5 text

Application΁ͷΞΫηεํ๏ Application('Safari') // ໊લ Application('com.apple.safari') // όϯυϧID Application(‘/Applications/Safari.app') // ύε Application(763) // ϓϩηεID Application(‘eppc://127.0.0.1/Safari') // ϦϞʔτϚγʔϯ Application.currentApplication() // ΧϨϯτΞϓϦ

Slide 6

Slide 6 text

഑ྻཁૉ΁ͷΞΫηε // Index window = app.windows.at(0) window = app.windows[0] // Name window = app.windows.byName(‘New Window’) window = app.windows[‘New Window’] // ID window = app.windows.byId(256)

Slide 7

Slide 7 text

഑ྻͷϑΟϧλϦϯά windows.whose({query})Ͱߦ͏ɻ { name: 'JavaScript for Automation' } { _match: [ hoge.tabs[0].name, 'Apple' ] }

Slide 8

Slide 8 text

৚݅ͷࢦఆ { hoge: { filter: ‘Fuga’ } } _equals / ‘=' _contains / _beginsWith / _endsWith _greaterThan / ‘>' _greaterThanEquals / ‘>=‘ _lessThan / ‘<‘ _lessThanEquals / '<='

Slide 9

Slide 9 text

and or not { _and: [ { name: 'Apple' }, { size: { '<': 20 } }, ]} _and _or _not

Slide 10

Slide 10 text

ΦϒδΣΫτͷ࡞੒ message = Mail.OutgoingMessage().make() message = Mail.OutgoingMessage({ subject: 'Hello world', visible: true }) para = TextEdit.Paragraph({}, 'Some text')

Slide 11

Slide 11 text

Scripting Additions app = Application.currentApplication() app.includeStandardAdditions = true app.say('Hello world') app.displayDialog('Please enter your email address', { withTitle: 'Email', defaultAnswer: '[email protected]' }) // ϝιουʹ͍ͭͯ͸ϥΠϒϥϦͷStandardAdditionsΛࢀর

Slide 12

Slide 12 text

JavaScriptͷؔ਺ var safari = Application('Safari'); link = makeMarkdownLink(safari); safari.includeStandardAdditions = true safari.setTheClipboardTo(link) function makeMarkdownLink(aSafari) { var title = aSafari.doJavaScript('document.title', { in: safari.windows[0].currentTab() }); var url = aSafari.doJavaScript('document.URL', { in: safari.windows[0].currentTab() }); return '[' + title + '](' + url + ')'; }

Slide 13

Slide 13 text

ࢀߟURL ❖ JavaScript for Automation Release Notes https://developer.apple.com/library/mac/ releasenotes/InterapplicationCommunication/RN- JavaScriptForAutomation/index.html