Отправить выделенный текст из Safari в установленное приложение через расширение действия iOS 8?

Можно ли использовать расширение действия iOS 8 для отправки выделенного текста из браузера Safari в установленное приложение? Я думаю об этом рабочем процессе: пользователь выберет текст на веб-сайте > коснется значка общего доступа > установленное приложение (а не только диалоговое окно общего доступа) откроется с выбранным текстом.


person Tom    schedule 18.03.2015    source источник


Ответы (3)


Вам нужно включить NSExtensionActivationSupportsWebURLWithMaxCount, чтобы сделать расширение доступным в Safari.

Когда вы создаете цель расширения действия без пользовательского интерфейса из шаблона, автоматически создается файл Action.js. Отредактируйте файл, чтобы отправить обратно выбранный текст, используя

document.getSelection().toString()

Источник

person Damián Rafael Lattenero    schedule 01.06.2017

Поскольку все расширения работают на iPhone так же, как и основное приложение. Вы можете использовать что-то вроде группы приложений для обмена информацией.

Таким образом, вам необходимо включить возможность группы приложений в обеих целях и обмениваться информацией с UserDefault (suiteName:) или использовать общий каталог файлов контейнера (с общим контейнером вам может понадобиться файловый координатор, чтобы сделать 2 процесса не будет использовать файл в то же время).

Более того, если оба процесса запущены, вы можете использовать уведомление darwin, чтобы уведомить другой об обновлении новой информации.

person user3349433    schedule 27.05.2017

Я думаю, что вы пытаетесь сделать это:

  1. Выбрать текст на сайте
  2. Нажмите кнопку «Поделиться» на панели инструментов в нижней части Safari.
  3. Откройте свое приложение с выделенным текстом, прикрепленным к некоторому словарю userInfo.

К сожалению, я думаю, что это невозможно. Вы можете создать расширение, чтобы принять выделенный текст, но оно не откроет ваше приложение полностью, а только расширение.

Проблема в том, что при маркировке текста в Safari нет выбора «Открыть в…» (по сравнению, например, с «Открыть в…», если вы выбираете файл, скажем, в приложении Dropbox).

Насколько я понимаю функциональность (и, честно говоря, я не слишком углублялся в нее, поэтому могу ошибаться), когда вы нажимаете меню «Поделиться» в Safari (может быть, это то, что из черного всплывающего окна при выборе текст или кнопку на нижней панели инструментов), он запустит «однократное» расширение, которое позволит вам выполнить определенное действие (например, отправить выбор в сообщениях, по электронной почте или поместить его в свои заметки). После того, как расширение будет выполнено, оно вернется туда, где оно было запущено (имеется в виду сафари).

Опять же, это отличается от «Открыть в ...», для которого вам нужно будет реализовать собственные схемы URL-адресов, чтобы ваше приложение могло их прослушивать. Но это не работает с простым выделением текста. Для этого потребуется реальная схема URL.

Возможно, этот вопрос поможет вам лучше понять: iOS Share vs Action App Extension

Подводя итог: то, что вы пытаетесь сделать, скорее всего, невозможно на iOS.

Возможная идея: вы можете каким-то образом попытаться добавить кнопку в расширение для обмена, которое генерирует пользовательскую схему URL-адресов с выбранным текстом и просит систему открыть URL-адрес, но я могу себе представить, что это на самом деле не сработает.

person xxtesaxx    schedule 31.05.2017
comment
фантастический ответ, плюс один, должен быть победителем - person Damián Rafael Lattenero; 01.06.2017
comment
Приложение Zoom делает это. Если на вашем iPhone установлен зум, вы можете выбрать любой текст › коснитесь «Поделиться» › выберите зум › и откроется приложение зума - person Matheus Lima; 14.01.2021