Нужно открыть мое приложение после использования расширения для обмена. Так же, как Dropbox и Maps.me

Я попробовал это в своем расширении с помощью context.openURL, но это заблокировано Apple. Вот что написано в их документации:

Обсуждение. Каждая точка расширения определяет, следует ли поддерживать этот метод или при каких условиях этот метод следует поддерживать. В iOS 8.0 этот метод поддерживает только точка расширения «Сегодня».

Итак, как мне открыть свое приложение после выбора общего доступа к файлу из электронной почты? Это делает Dropbox и Maps.me, поэтому должен быть какой-то способ.

Изменить: расширение совместного доступа не помогло решить эту проблему. В комментариях Том указал мне на сообщение SO с правильным материалом: Как работает «Открыть с помощью какого-либо приложения» на iPhone?


person Tycho Pandelaar    schedule 04.01.2015    source источник


Ответы (1)


Эти приложения не имеют расширений общего доступа. Я не знаю, на что вы смотрите, но предпосылка вашего вопроса неверна.

Если вы загрузите Dropbox.app на Mac и разархивируете пакет приложения, он будет содержать два расширения:

$ ls Payload/Dropbox.app/PlugIns/
DocPicker.appex/        DropboxTodayView.appex/

Если вы посмотрите в файлах Info.plist для этих расширений, вы увидите, что ни одно из них не является общим расширением. DocPicker.appex — это расширение поставщика файлов:

            <key>NSExtensionPointIdentifier</key>
            <string>com.apple.fileprovider-ui</string>

DropboxTodayView.appex — это сегодняшнее расширение:

    <key>NSExtensionPointIdentifier</key>
    <string>com.apple.widget-extension</string>

Попробуйте то же самое с приложением Maps.me, и вы увидите, что оно вообще не содержит никаких расширений:

$ ls Payload/maps.me.app/PlugIns
ls: Payload/maps.me.app/PlugIns: No such file or directory

Текущие ограничения Apple делают невозможным открытие содержащего приложения из общего доступа.

person Tom Harrington    schedule 04.01.2015
comment
Что ж, если я отправлю себе электронное письмо с файлом KML, я могу использовать функцию общего доступа iOS для «Открыть в maps.me» или «Открыть в Dropbox». Как вы думаете, что они использовали? - person Tycho Pandelaar; 05.01.2015
comment
Не делиться расширениями. Открытие с функциональностью описано во многих местах, например прямо здесь в StackOverflow. Теперь, не могли бы вы пойти и удалить свой противный голос на основе ваших неверных предположений? - person Tom Harrington; 05.01.2015
comment
Большое спасибо, Том. Этот комментарий меня выручил. Думаю, я был слишком сосредоточен на расширении, чтобы искать Open With здесь, в SO. Спасибо еще раз. - person Tycho Pandelaar; 05.01.2015