Могу ли я выполнить задачу в основном приложении iOS из расширения приложения?
У меня есть расширение приложения для совместного использования (расширение общего доступа), и когда пользователь выбирает мое приложение для обмена изображением, мое приложение отправляет это изображение на сервер.
Проблема в том, что серверу требуется аутентифицированная личность (AWS Cognito) для отправки объекта на сервер. Поскольку я не могу поделиться аутентификацией из моего основного приложения с моим расширением, и я не хочу, чтобы пользователь входил в систему каждый раз, когда они хотят поделиться, я застрял.
Я вижу, что это делается с помощью приложений для обмена сообщениями, в которых пользователь отправляет сообщение из расширения общего доступа. Я не знаю, как они этого добиваются. Поскольку пользователя не просят снова войти в систему в расширении, каким-то образом учетные данные либо передаются расширению, либо приложение мгновенно запускается для выполнения этой загрузки, оставаясь в фоновом режиме (не уверен, что это возможно).
Итак, мой вопрос в том, какой подход я должен использовать. Должно ли расширение каким-то образом направлять основное приложение для загрузки изображения или я должен придумать способ безопасного обмена токенами доступа с расширением и доступа к ним без каких-либо действий пользователя?
1 ответ
Решение состоит в том, чтобы настроить общий контейнер для приложения и расширения, см. раздел «Обмен данными с вашим содержащим приложением» в этой статье: https://developer.apple.com/library/archive/documentation/General/Conceptual/ExtensibilityPG/ExtensionScenarios.html#:~:text=To%20enable%20data%20sharing%2C%20use,App%20to%20an%20App%20Group.