Обмен элементами с macOS-сервисами обмена данными под управлением Hammerspoon.
Этот модуль позволит вам обмениваться элементами Hammerspoon с зарегистрированными службами обмена. Некоторые встроенные службы обмена включают обмен по почте, Facebook, AirDrop и т. д. Другие приложения также могут добавлять дополнительные службы.
Для большинства служб обмена (это не было протестировано со всеми) пользователю будет предложен стандартный диалог обмена, показывающий, что будет обменено, и возможность отправить или отменить.
Этот пример подготавливает электронное письмо со скриншотом:
mailer=hs.sharing.newShare("com.apple.share.Mail.compose")mailer:subject("Screenshot generated at "..os.date()):recipients({"user@address.com"})mailer:shareItems({[[ Add any notes that you wish to add describing the screenshot here and click the Send icon when you are ready to send this]],hs.screen.mainScreen():snapshot()})
Общие типы данных элементов, которые можно обмениваться с сервисами обмена, включают (но не ограничиваются):
базовые типы данных, такие как строки и числа
объекты hs.image
объекты hs.styledtext
веб-сайты и другие URL-адреса с помощью функции hs.sharing.URL
локальные файлы с помощью URL-адресов файлов, созданных с помощью функции hs.sharing.fileURL
Обзор API
Константы — полезные значения, которые нельзя изменить
Возвращает таблицу, содержащую идентификаторы служб обмена, которые могут обмениваться указанными элементами.
Параметры
items — массив (таблица) или список элементов, разделенных запятыми, которые вы хотите обмениваться с этим модулем.
Возвращаемое значение
массив (таблица), содержащий строки, которые идентифицируют идентификаторы служб обмена, которые могут использоваться конструктором hs.sharing.newShare для обмена указанными данными.
Примечания
эта функция предназначена для определения идентификаторов доступных на вашем компьютере служб обмена, которые могут не быть включены в таблицу hs.sharing.builtinSharingServices.
fileURL — необязательный логический тип, по умолчанию false, определяющий, представляет ли URL файл на локальном компьютере.
Возвращаемое значение
таблица, содержащая необходимые метки для представления указанного URL, как требуется API macOS.
Примечания
Если URL задан как таблица, ожидается, что она будет содержать ключ url, со строковым значением, определяющим правильную схему и локатор ресурса.
Поскольку macOS требует, чтобы URL представлялись как определенный тип объекта, у которого нет точного эквивалента в Lua, Hammerspoon использует таблицу со специфическими ключами, чтобы обеспечить надлежащую идентификацию URL-адреса при включении в качестве типа аргумента или результата. Используйте эту функцию или функцию-обертку hs.sharing.fileURL при указании URL-адреса, чтобы убедиться, что определены правильные ключи.
В настоящее время для таблицы URL определены следующие ключи (в будущем могут быть добавлены дополнительные ключи, если будущие модули Hammerspoon потребуют их для более полного использования класса macOS NSURL, но эти ключи не изменятся):
url — строка, содержащая URL-адрес с правильной схемой и локатором ресурса
filePath = строка, определяющая фактический путь к файлу в случае, если URL-адрес является URL-адресом ссылки на файл. Обратите внимание, что установка этого поля этим методом будет проигнорирована; поле автоматически вставляется при необходимости при возвращении объекта NSURL в lua.
__luaSkinType — строка, определяющая тип macOS, который представляет эта таблица при преобразовании в тип Objective-C
Установить или очистить обратный вызов для sharingObject.
Параметры
fn - функция или nil для установки или удаления обратного вызова для sharingObject
Возвращаемое значение
sharingObject
Примечания
обратный вызов должен принимать 3 или 4 аргумента и не возвращать результатов. Аргументы будут следующими:
сам sharingObject
сообщение обратного вызова, которое будет строкой, равной одному из следующих:
"didFail" - произошла ошибка при попытке поделиться элементами
"didShare" - служба совместного доступа завершила совместный доступ к элементам
"willShare" - служба совместного доступа собирается начать совместный доступ к элементам; происходит перед фактическим началом совместного доступа
массив (таблица), содержащий элементы, которые разделяются; если сообщение равно "didFail" или "didShare", элементы могут быть в другом порядке или преобразованы в другой внутренний тип для облегчения совместного доступа.
если сообщение равно "didFail", четвертым аргументом будет локализованное описание произошедшей ошибки.
Возвращает логическое значение, указывающее, могут ли все указанные элементы быть разделены со службой совместного доступа, представленной sharingObject.
Параметры
items - массив (таблица) или список элементов, разделенных запятыми, которые должны быть разделены службой совместного доступа
Возвращаемое значение
логическое значение, указывающее, могут ли все указанные элементы быть разделены со службой совместного доступа, представленной sharingObject.
Если служба совместного доступа предоставляет тело сообщения, опубликованного при завершении совместного доступа, этот метод вернёт тело сообщения в виде строки.
Параметры
Нет
Возвращаемое значение
строка, содержащая тело сообщения, или nil, если выбранная служба совместного доступа этого не предоставляет.
Примечания
не все службы совместного доступа установят значение для этого свойства.
Если служба совместного доступа предоставляет постоянную ссылку на публикацию после завершения совместного доступа, этот метод вернёт соответствующий URL.
Параметры
Нет
Возвращаемое значение
URL постоянной ссылки или nil, если выбранная служба совместного доступа этого не предоставляет.
Примечания
не все службы совместного доступа установят значение для этого свойства.
hs.sharing:recipients([recipients]) -> current value | sharingObject
Тип
Метод
Описание
Получить или установить тему, используемую при выполнении службой совместного доступа операции совместного доступа.
Параметры
recipients - необязательный массив (таблица) или список строк получателей, разделённых запятыми, которые указывают получателей общих элементов.
Возвращаемое значение
если аргумент предоставлен, возвращает sharingObject; в противном случае возвращает текущее значение.
Примечания
не все службы совместного доступа будут использовать значение, установленное этим методом.
отдельные получатели должны быть указаны в виде строк в формате, ожидаемом службой совместного доступа; например, для элементов, которые разделяются по электронной почте, получатели должны быть адресами электронной почты и т. д.
Название службы совместного доступа, представленной sharingObject.
Параметры
Нет
Возвращаемое значение
строка, содержащая название службы совместного доступа.
Примечания
эта строка отличается от идентификатора, используемого для создания объекта службы совместного доступа с помощью hs.sharing.newShare, и предназначена для предоставления более дружественного обозначения для службы, если вам нужно перечислить или сослаться на неё в другом месте.