UIDocumentInteractionController не открывает приложение (didEndSendingToApplication: никогда не вызывал)

У меня есть экземпляр UIDocumentInteractionController (который имеет сильную ссылку в моем классе, я знаю о проблемах с памятью), и я хочу отправить файл фотографий в Instagram.

Я сохранил файл, используя расширение ig (также попробовал igo ), и я представляю контроллер. Instagram отображается в списке. Я нажимаю Instagram, и ничего не происходит.

 NSURL *imageFile = [NSURL fileURLWithPath:path]; interactionController = [UIDocumentInteractionController interactionControllerWithURL:imageFile]; interactionController.UTI = @"com.instagram.photo"; interactionController.annotation = [NSDictionary dictionaryWithObject:@"my caption" forKey:@"InstagramCaption"]; interactionController.delegate = self; [interactionController presentOpenInMenuFromRect:self.view.frame inView:self.view animated:YES]; 

Чтобы дополнительно исследовать, я установил свой вызывающий класс в качестве делегата и реализовал willBeginSendingToApplication: и didEndSendingToApplication: Интересно, что я понял, что willBeginSendingToApplication: вызывается, но didEndSendingToApplication: нет. Я попытался изменить свои расширения файлов, изменив UTI на com.instagram.exclusivegram , проверяя правильность URL-адреса файла и т. Д., Но ни один из них не работает. Нет ошибки, ничего в консоли или что-то еще. Контроллер взаимодействия закрывается, мое приложение продолжает работать, поскольку оно работает раньше, просто ничего не происходит. Я читал, что могут быть некоторые проблемы на iOS 6, но мое приложение является iOS 6, поэтому я не могу его протестировать на iOS <6. Единственное, что близко к моей проблеме, которую я нашел, – это UIDocumentInteractionController, No File Extension, но UTI, но он слишком сильно погружается в бит низкого уровня, и у меня нет кода без ARC.

Что может быть причиной проблемы?

3 Solutions collect form web for “UIDocumentInteractionController не открывает приложение (didEndSendingToApplication: никогда не вызывал)”

Это может произойти, если файл не существует, но также и если вы правильно не создали URL-адрес файла. Это некоторое время мучило меня.

Убедитесь, что вы создали свой URL-адрес файла следующим образом:

 NSURL *pagesURL = [NSURL fileURLWithPath:[[NSBundle mainBundle] pathForResource:@"MyGreatPDF.pdf" ofType:nil]]; 

и не так:

 NSURL *pagesURL = [NSURL fileURLWithPath:@"MyGreatPDF.pdf"]; 

Последний по-прежнему формирует действительный URL-адрес, но он получает «частный» префикс, то есть file:///private/var/mobile/Applications/00000000-0000-0000-0000-000000000000/MyGreatApp.app/MyGreatPDF.pdf а не file:///var/mobile/Applications/00000000-0000-0000-0000-000000000000/MyGreatApp.app/MyGreatPDF.pdf

Через некоторое время я обнаружил, что файл не был сохранен правильно и не существовал. iOS не выбрасывает какую-либо ошибку, не получается безмолвно. Я скорректировал код создания файла, и когда файл был там, появился контроллер. Возможно, Apple должна добавить механизм утверждения / исключения для обработки несуществующих файлов в контроллере взаимодействия документов.

Это также может быть вызвано расширением имени файла.

Если целевое приложение объявляет, что оно поддерживает только файл с расширением png в Info.plist -> Exported Type UTIs -> Equivalent Types -> public.filename-extension , и вы отправляете файл с расширением jpg , целевое приложение не будет открываться как Что ж.

  • UIDocumentInteractionController перестает работать с iOS 8
  • setStatusBarHidden перестает работать должным образом после того, как UIDocumentInteractionController's presentPreviewAnimated
  • Как я могу установить поля «Кому» и «Тема» в электронной почте, отправляемой UIDocumentInteractionController?
  • UIDocumentInteractionController, не отображающий параметр печати
  • Отключение почтового приложения iOS, открытого из UIDocumentInteractionController, удаляет представление представления ViewController в iOS7
  • Как реализовать приложения Open In для обычного текста
  • Как проверить, связаны ли какие-либо приложения с расширением файла
  • Можно ли представить UIDocumentInteractionController для нескольких элементов?
  • Файл UIDocumentInteractionController не подключен к Mail, если есть другое приложение, поддерживающее тип файла
  • UIDocumentInteractionController: «Открыто», видимое на iPhone, но не на iPad - почему?
  • Как получить миниатюры PDF-страниц для отображения в QLPreviewController
  • Interesting Posts

    Использование Facebook Async Display Kit в Swift

    Обнаружение черного пикселя в изображении iOS

    SiriKit, Как отобразить ответ для начала Workout Intent?

    может значок на UITableViewAccessory заменить?

    Какие личные ключи следует сохранить для восстановления моего приложения iOS?

    Создание iOS / OSX Framework: нужно ли их кодовое кодирование перед распространением другим разработчикам?

    NSManagedObjectContext в несогласованном состоянии после mergeChangesFromContextDidSaveNotification в фоновом контексте

    UIView автоматически сбрасывается в старый кадр после установки значения из DatePicker в UITextField

    Добавление слайда влево-вправо анимация (переход) в addSubView

    Возврат bool внутри функции pfcloud

    Hashchange вызывает приложение phonegap для сбоя?

    apns http2 api не возвращает статус 410 после удаления приложения

    iOS для фокусировки

    SKMaps, показывающие несколько карт

    Как импортировать заметки iPhone в мое приложение?

    PhoneC: Разработка iOS проста с помощью XCode, Swift3, UITableView, cocatouch, давайте создадим приложения для iPhone, iPad и Macbook.