я хочу открыть файл PDF в своем приложении от страницы PDF, но я не получаю опции открытия PDF в моем приложении.
этот мой info.plist файл
<key>CFBundleDevelopmentRegion</key>
<string>English</string>
<key>CFBundleDocumentTypes</key>
<array>
<dict>
<key>CFBundleTypeName</key>
<string>PDF</string>
<key>CFBundleTypeRole</key>
<string>Viewer</string>
<key>CFBundleTypeIconFiles</key>
<string>Icon.png</string>
<key>LSItemContentTypes</key>
<string>com.neosofttech.pdf</string>
<key>LSHandlerRank</key>
<string>Owner</string>
</dict>
</array>
<key>UTExportedTypeDeclarations</key>
<array>
<dict>
<key>UTTypeConformsTo</key>
<array>
<string>public.pdf</string>
</array>
<key>UTTypeDescription</key>
<string>PDFReader File</string>
<key>UTTypeIdentifier</key>
<string>com.neosofttech.pdf</string>
<key>UTTypeTagSpecification</key>
<dict>
<key>public.filename-extension</key>
<string>pdf</string>
</dict>
</dict>
скажите мне, где я неправ в этом, как я могу открыть файл PDF в своем приложении.
Я предполагаю, что вы пытаетесь открыть вложение из Почты на основе вашего списка здесь. Поскольку вам не принадлежит тип файла PDF, вы не можете объявить его как экспортируемый тип. Вам нужно только объявить его как поддерживаемый тип документа.
Например:
<key>CFBundleDocumentTypes</key>
<array>
<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>
Список всех типов контента, предоставляемых системой , можно найти здесь или в UTCoreTypes.h
.
Когда кто-то открывает PDF-файл и выбирает ваше приложение, этот файл будет скопирован в подкаталог Inbox
вашей папки Documents
в изолированной программной среде приложения. Затем ваше приложение будет открыто, и в делегата вашего приложения application: didFinishLaunchingWithOptions:
ваш словарь launchOptions
будет содержать ключ UIApplicationLaunchOptionsURLKey
, указывающий URL-адрес файла в вашей песочнице. с которым потом можно работать.
Вы не сможете делать то, что пытаетесь сделать, если не выполните следующие действия:
Это означает, что вы регистрируете пользовательский обработчик URL в своем info.plist. Например, предположим, что вы создали собственный обработчик URL-адресов с формой coolapp: //. Теперь внутри вашего документа, из которого вы генерируете PDF-файл, при создании гиперссылки используйте ваш собственный URL-адрес, например coolapp: // filedetails? Pdfurl = mywebsite.com / path / to / pdffile.pdf & pageno = 5. Затем вам нужно проанализировать это в -application: handleOpenURL: . Загрузите файл, указанный в поле pdfurl , а затем перейдите на страницу, указанную в pageno .
Имейте в виду, что это предполагает, что вы сами создаете рассматриваемый PDF-файл. Если вы не контролируете процесс создания содержимого PDF, вы не сможете делать то, что хотите. Невозможно открыть ваше приложение из произвольного PDF-файла. Это должно быть сделано с использованием настраиваемого URL-адреса.
Дайте мне знать, если вам нужны пояснения.