2014-12-11 3 views
1

Я сделал некоторые исследования, но не кажется, до сих пор не повезлоIOS 8 открытого изображение в моем приложении из другого приложения

, когда я добавил эти XML в моем info.plist

<key>UTImportedTypeDeclarations</key> 
    <array> 
     <dict> 
      <key>UTTypeConformsTo</key> 
      <array> 
       <string>public.data</string> 
      </array> 
      <key>UTTypeIdentifier</key> 
      <string>my.custom.uti</string> 
      <key>UTTypeDescription</key> 
      <string>PDF file</string> 
     </dict> 
    </array> 
    <key>CFBundleDocumentTypes</key> 
    <array> 
     <dict> 
      <key>LSItemContentTypes</key> 
      <array> 
       <string>public.data</string> 
      </array> 
      <key>CFBundleTypeIconFile</key> 
      <string>Icon.png</string> 
      <key>CFBundleTypeRole</key> 
      <string>Editor</string> 
      <key>CFBundleTypeName</key> 
      <string>my.custom.uti</string> 
      <key>LSHandlerRank</key> 
      <string>Alternate</string> 
     </dict> 
    </array> 

и отправляет 3 электронную почту к себе , 1 - файл в pdf. 2 - файл png. 3 - файл jpg и png.

Когда я добавил эти xmls, мое приложение может отображать в формате pdf и txt, при нажатии «open with ...» , но то, что я хочу, открыто на изображениях. все идет не так ??? , и я установил UITTypeConformsTo = public.data, предположим, что это общее значение. Так что мое приложение может открыть все форматы (по крайней мере, pdf и изображения), но, похоже, это не так.

Я также пытаюсь скопировать XML в этом ответ на мой info.plist https://stackoverflow.com/a/11609935/1061074 еще не повезло

+0

Вы можете исправить это. i m сталкивается с тем же самым прообразом, –

+1

Наконец, я создал расширение для обмена данными ... кажется, не просто просто сделать это, добавив эти xml. –

ответ

0

В моем приложении, я не использую ключевые UTImportedTypeDeclarations. Вы можете удалить его и попробуйте с помощью ниже:

<key>CFBundleDocumentTypes</key> 
<array> 
    <dict> 
     <key>CFBundleTypeName</key> 
     <string>Image</string> 
     <key>LSHandlerRank</key> 
     <string>Alternate</string> 
     <key>LSItemContentTypes</key> 
     <array> 
      <string>public.image</string> 
     </array> 
    </dict> 
    <dict> 
     <key>CFBundleTypeName</key> 
     <string>OpenDocument Text</string> 
     <key>LSHandlerRank</key> 
     <string>Alternate</string> 
     <key>LSItemContentTypes</key> 
     <array> 
      <string>org.oasis.opendocument.text</string> 
     </array> 
    </dict> 
    <dict> 
     <key>CFBundleTypeName</key> 
     <string>GIF image</string> 
     <key>LSHandlerRank</key> 
     <string>Alternate</string> 
     <key>LSItemContentTypes</key> 
     <array> 
      <string>com.compuserve.gif</string> 
     </array> 
    </dict> 
    <dict> 
     <key>CFBundleTypeName</key> 
     <string>PNG image</string> 
     <key>LSHandlerRank</key> 
     <string>Alternate</string> 
     <key>LSItemContentTypes</key> 
     <array> 
      <string>public.png</string> 
     </array> 
    </dict> 
    <dict> 
     <key>CFBundleTypeName</key> 
     <string>TIFF image</string> 
     <key>LSHandlerRank</key> 
     <string>Alternate</string> 
     <key>LSItemContentTypes</key> 
     <array> 
      <string>public.tiff</string> 
     </array> 
    </dict> 
    <dict> 
     <key>CFBundleTypeName</key> 
     <string>JPEG image</string> 
     <key>LSHandlerRank</key> 
     <string>Alternate</string> 
     <key>LSItemContentTypes</key> 
     <array> 
      <string>public.jpeg</string> 
     </array> 
    </dict> 
    <dict> 
     <key>CFBundleTypeName</key> 
     <string>Rich Text</string> 
     <key>LSHandlerRank</key> 
     <string>Alternate</string> 
     <key>LSItemContentTypes</key> 
     <array> 
      <string>public.rtf</string> 
      <string>com.apple.rtfd</string> 
      <string>com.apple.flat-rtfd</string> 
     </array> 
    </dict> 
    <dict> 
     <key>CFBundleTypeName</key> 
     <string>Text</string> 
     <key>LSHandlerRank</key> 
     <string>Alternate</string> 
     <key>LSItemContentTypes</key> 
     <array> 
      <string>public.text</string> 
      <string>public.plain-text</string> 
      <string>public.utf8-plain-text</string> 
      <string>public.utf16-external-plain-​text</string> 
      <string>public.utf16-plain-text</string> 
      <string>com.apple.traditional-mac-​plain-text</string> 
      <string>public.source-code</string> 
      <string>public.c-source</string> 
      <string>public.objective-c-source</string> 
      <string>public.c-plus-plus-source</string> 
      <string>public.objective-c-plus-​plus-source</string> 
      <string>public.c-header</string> 
      <string>public.c-plus-plus-header</string> 
      <string>com.sun.java-source</string> 
      <string>public.script</string> 
      <string>public.shell-script</string> 
     </array> 
    </dict> 
    <dict> 
     <key>CFBundleTypeName</key> 
     <string>PDF</string> 
     <key>LSHandlerRank</key> 
     <string>Alternate</string> 
     <key>LSItemContentTypes</key> 
     <array> 
      <string>com.adobe.pdf</string> 
     </array> 
    </dict> 
</array> 
+1

Большое спасибо, но все равно не повезло. Я делаю это правильно? 1. скопируйте эти XML в info.plist 2. запустите мое приложение 3. зайдите в Фото на iPhone (или симулятор) нажмите кнопку экспорта 4. чтобы увидеть, есть ли у меня приложение. Оказалось, что моего приложения нет в списке. Есть идеи?? –

0

Все зависит от того, как реализована кнопка «share» в главном приложении. В iOS8 существует два разных способа: 1) использование CFBundleDocumentTypes в Info.plist и (2) расширение приложения. Некоторые приложения, такие как GMail & AVR поддерживают оба (1) & (2). Но Dropbox поддерживает только (2). Вот почему CFBundleDocumentTypes больше не работает в Dropbox. Конечно, все может измениться позже.

+0

Я просто пытаюсь поделиться текстом в своем приложении, и это не работает с CFBundleDocumentTypes. Можете ли вы помочь в этом, я тестирую на Simulator iOS 9.1 –

Смежные вопросы