Почему я не могу зарегистрировать свое приложение iOS для обработки файлов с типами изображений? - PullRequest
12 голосов
/ 08 февраля 2012

У меня проблема с регистрацией типов файлов изображений в моем приложении.Я попытался добавить приведенный ниже код в мой список, но ничего не происходит.

<key>CFBundleDocumentTypes</key>
    <array>
        <dict>
            <key>CFBundleTypeName</key>
            <string>Scary Bug Document</string>
            <key>LSHandlerRank</key>
            <string>Alternate</string>
            <key>CFBundleTypeRole</key>
            <string>None</string>
            <key>LSItemContentTypes</key>
            <array>
                <string>public.image</string>
            </array>
        </dict>
    </array>

Я заметил, что могу зарегистрироваться для других типов файлов, таких как текст (изменение public.image на public.text), но это простоне будет работать с изображениями (меню «Открыть в ...» не показывает мое приложение).

Что может быть причиной, и как я могу это исправить?

Ответы [ 7 ]

6 голосов
/ 08 декабря 2013

Ответ Дмитрия Буниола о том, что он работает в iOS 7 через быстрый просмотр, верен. Следующие дополнения к моему в info.plist ниже - это то, как я заставил его работать для моего приложения. До сих пор не выяснили, как заставить делиться фотографиями или фотоаппаратом работать.

  <key>CFBundleDocumentTypes</key>
    <array>
        <dict>
            <key>CFBundleTypeExtensions</key>
            <array>
                <string>myapp image</string>
            </array>
            <key>CFBundleTypeName</key>
            <string>public.png</string>
            <key>CFBundleTypeRole</key>
            <string>Editor</string>
            <key>LSHandlerRank</key>
            <string>Alternate</string>
            <key>LSItemContentTypes</key>
            <array>
                <string>public.png</string>
                <string>public.jpeg</string>
            </array>
        </dict>
    </array>
    <key>UTImportedTypeDeclarations</key>
    <array>
        <dict>
            <key>UTTypeConformsTo</key>
            <array>
                <string>public.image</string>
            </array>
            <key>UTTypeIdentifier</key>
            <string>public.png</string>
            <key>UTTypeTagSpecification</key>
            <dict>
                <key>com.apple.ostype</key>
                <string>PNG</string>
                <key>public.filename-extension</key>
                <array>
                    <string>png</string>
                </array>
                <key>public.mime-type</key>
                <string>image/png</string>
            </dict>
        </dict>
        <dict>
            <key>UTTypeIdentifier</key>
            <string>public.jpeg</string>
            <key>UTTypeReferenceURL</key>
            <string>http://www.w3.org/Graphics/JPEG/</string>
            <key>UTTypeDescription</key>
            <string>JPEG image</string>
            <key>UTTypeIconFile</key>
            <string>public.jpeg.icns</string>
            <key>UTTypeConformsTo</key>
            <array>
                <string>public.image</string>
                <string>public.data</string>
            </array>
            <key>UTTypeTagSpecification</key>
            <dict>
                <key>com.apple.ostype</key>
                <string>JPEG</string>
                <key>public.filename-extension</key>
                <array>
                    <string>jpeg</string>
                    <string>jpg</string>
                </array>
                <key>public.mime-type</key>
                <string>image/jpeg</string>
            </dict>
        </dict>
    </array>
6 голосов
/ 11 ноября 2013

Теперь можно открывать изображения из почтового приложения в iOS 7, это просто несколько запутанно:

Нажмите и удерживайте изображение.Нажмите на Quick Look, чтобы изображение стало полноэкранным.Нажмите на изображение, чтобы показать верхнюю панель инструментов.Нажмите кнопку «Открыть» в правом верхнем углу.Прокрутите список влево, чтобы найти свое приложение.

Обязательно настройте типы документов в комплекте для интересующих вас типов изображений.

2 голосов
/ 10 февраля 2012

После небольшого исследования кажется, что невозможно зарегистрировать приложение для изображений.Спасибо за ваши ответы.

2 голосов
/ 08 февраля 2012

Попробуйте:

<key>CFBundleDocumentTypes</key>
    <array>
        <dict>
            <key>CFBundleTypeName</key>
            <string>Scary Bug Document</string>
            <key>LSHandlerRank</key>
            <string>Alternate</string>
            <key>CFBundleTypeRole</key>
            <string>None</string>
            <key>LSItemContentTypes</key>
            <array>
                <string>public.png</string>
                <string>public.jpg</string>
            </array>
        </dict>
    </array>

Также, посмотрите этот другой ответ в StackOverflow

1 голос
/ 08 февраля 2012

public.image - абстрактный тип, попробуйте зарегистрироваться для public.png или public.jpeg и т. Д.

0 голосов
/ 07 октября 2018

Согласно документации Apple, "чтобы добавить тип документа, выполните следующие действия:

  • Нажмите кнопку раскрытия для Типы документов, чтобы открыть типы документов.
  • В разделе" Типы "»Заполните поле UTI для нового типа.
  • Для типа значения ключа: CFBundleTypeRole.
  • Для типа значения: Editor.
  • Для типа значения ключа:LSHandlerRank.
  • Для типа значения: Владелец. "

Это работает для меня, используя public.image в качестве UTI.

0 голосов
/ 25 ноября 2012

ОС не позволит вам открывать изображения в вашем приложении. Я также попробовал много перестановок и комбинаций, и подтвердил еще несколько постов в Apple Support.

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