Создать расширение для действий iOS без пользовательского интерфейса - PullRequest
0 голосов
/ 10 февраля 2019

Я пытаюсь создать расширение действия, подобное системному действию «Копировать», доступному в iOS.
Я нашел разные ответы о том, что невозможно иметь не полноэкранный интерфейс, но согласно Официальная документация Apple можно не иметь пользовательского интерфейса (как в действии «Копировать», я полагаю).

Действие (iOS и macOS; варианты пользовательского интерфейса и не-пользовательского интерфейса)

Я пытался создать прозрачное представление, но в результате всегда отображается полноэкранное черное наложение.
Я уже указал NSExtensionActionWantsFullScreenPresentation - NO в моем Info.plist, но ничего не меняется.

Есть идеи о том, как это сделать?

Ответы [ 2 ]

0 голосов
/ 16 февраля 2019

Чтобы ответить на мой собственный вопрос: на самом деле можно создать расширение действия без пользовательского интерфейса на iOS, назначив свойство NSExtensionPrincipalClass классу, реализующему протокол NSExtensionRequestHandling .

Пример:

class ActionRequestHandler: NSObject, NSExtensionRequestHandling {

    var extensionContext: NSExtensionContext?

    func beginRequest(with context: NSExtensionContext) {
        // Do not call super in an Action extension with no user interface
        self.extensionContext = context

        // Do stuff with the context

    }
}

Самый простой способ создать расширение, подобное этому, - это добавить новую цель (Файл> Создать> Цель), выбрать Расширение действия, а затем выбрать Нет.Интерфейс пользователя в Тип действия .

0 голосов
/ 11 февраля 2019

В iOS расширение Action:

  • Помогает пользователям просматривать текущий документ другим способом

  • Всегда отображается на листе действий или в полноэкранном модальном виде

  • Получает выбранный контент, только если он явно предоставлен приложением хоста

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...