Можно ли использовать расширение действия iOS 8 для отправки выделенного текста из браузера Safari в установленное приложение? Я думаю об этом рабочем процессе: пользователь выберет текст на веб-сайте > коснется значка общего доступа > установленное приложение (а не только диалоговое окно общего доступа) откроется с выбранным текстом.
Отправить выделенный текст из Safari в установленное приложение через расширение действия iOS 8?
Ответы (3)
Вам нужно включить NSExtensionActivationSupportsWebURLWithMaxCount, чтобы сделать расширение доступным в Safari.
Когда вы создаете цель расширения действия без пользовательского интерфейса из шаблона, автоматически создается файл Action.js. Отредактируйте файл, чтобы отправить обратно выбранный текст, используя
document.getSelection().toString()
Поскольку все расширения работают на iPhone так же, как и основное приложение. Вы можете использовать что-то вроде группы приложений для обмена информацией.
Таким образом, вам необходимо включить возможность группы приложений в обеих целях и обмениваться информацией с UserDefault (suiteName:) или использовать общий каталог файлов контейнера (с общим контейнером вам может понадобиться файловый координатор, чтобы сделать 2 процесса не будет использовать файл в то же время).
Более того, если оба процесса запущены, вы можете использовать уведомление darwin, чтобы уведомить другой об обновлении новой информации.
Я думаю, что вы пытаетесь сделать это:
- Выбрать текст на сайте
- Нажмите кнопку «Поделиться» на панели инструментов в нижней части Safari.
- Откройте свое приложение с выделенным текстом, прикрепленным к некоторому словарю userInfo.
К сожалению, я думаю, что это невозможно. Вы можете создать расширение, чтобы принять выделенный текст, но оно не откроет ваше приложение полностью, а только расширение.
Проблема в том, что при маркировке текста в Safari нет выбора «Открыть в…» (по сравнению, например, с «Открыть в…», если вы выбираете файл, скажем, в приложении Dropbox).
Насколько я понимаю функциональность (и, честно говоря, я не слишком углублялся в нее, поэтому могу ошибаться), когда вы нажимаете меню «Поделиться» в Safari (может быть, это то, что из черного всплывающего окна при выборе текст или кнопку на нижней панели инструментов), он запустит «однократное» расширение, которое позволит вам выполнить определенное действие (например, отправить выбор в сообщениях, по электронной почте или поместить его в свои заметки). После того, как расширение будет выполнено, оно вернется туда, где оно было запущено (имеется в виду сафари).
Опять же, это отличается от «Открыть в ...», для которого вам нужно будет реализовать собственные схемы URL-адресов, чтобы ваше приложение могло их прослушивать. Но это не работает с простым выделением текста. Для этого потребуется реальная схема URL.
Возможно, этот вопрос поможет вам лучше понять: iOS Share vs Action App Extension
Подводя итог: то, что вы пытаетесь сделать, скорее всего, невозможно на iOS.
Возможная идея: вы можете каким-то образом попытаться добавить кнопку в расширение для обмена, которое генерирует пользовательскую схему URL-адресов с выбранным текстом и просит систему открыть URL-адрес, но я могу себе представить, что это на самом деле не сработает.