2012-04-28 5 views
5

Я работаю над приложением iOS (iPhone/iPad), которое вызывает вызов веб-службы, где один из параметров - это .pfx-файл.Импорт файла pfx в приложение iOS

Я хотел бы, чтобы пользователь мог импортировать свой собственный .pfx-файл в приложение, выбрав его вложение в электронном письме (приложение уже делает это для пользовательского типа файла, записи которого не показаны ниже, но очень похожи).

В файле Info.plist приложения я добавил запись в тег CFBundleDocumentTypes и один в теге UTExportedTypeDeclarations, как показано ниже. В UTExportedTypeDeclarations я использовал для идентификатора «com.rsa.pkcs-12», который является одним из файлов UTI для файлов pfx. Я посмотрел и ввел стандартный MIME-тип файла pfx (application/x-pkcs12).

<?xml version="1.0" encoding="UTF-8"?> 
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd"> 
<plist version="1.0"> 
<dict> 
... 
<key>CFBundleDocumentTypes</key> 
<array> 
      ... 
    <dict> 
     <key>CFBundleTypeName</key> 
     <string>Personal Information Exchange</string> 
     <key>LSHandlerRank</key> 
     <string>Owner</string> 
     <key>LSItemContentTypes</key> 
     <array> 
      <string>com.rsa.pkcs-12</string> 
     </array> 
    </dict> 
</array> 
... 
    <key>UTExportedTypeDeclarations</key> 
<array> 
      ... 
    <dict> 
     <key>UTTypeConformsTo</key> 
     <array/> 
     <key>UTTypeDescription</key> 
     <string>Personal Information Exchange</string> 
     <key>UTTypeIdentifier</key> 
     <string>com.rsa.pkcs-12</string> 
     <key>UTTypeTagSpecification</key> 
     <dict> 
      <key>public.filename-extension</key> 
      <string>pfx</string> 
      <key>public.mime-type</key> 
      <string>application/x-pkcs12</string> 
     </dict> 
    </dict> 
</array> 
</dict> 
</plist> 

Это не работает. Когда я открываю вложение файла pfx в Mail, он открывается в настройках (он хочет установить файл в качестве профиля). Конечно, тип файла pfx уже существует в iOS, поэтому не обязательно делать запись в UTExportedTypeDeclarations; однако удаление этой записи не имеет значения. Такое же поведение возникает, когда я использую собственный идентификатор в обеих записях (вместо «com.rsa.pkcs-12»).

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

ответ

3

Похоже, что это невозможно для специального файла, такого как .pfx.

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