Встроенная поддержка Android для просмотра PDF-файлов и других документов? - PullRequest
0 голосов
/ 15 ноября 2018

Быстрая версия:

Есть ли в Android нативный класс, похожий на WKWebView в iOS, который может отображать документы Word и PDF?

Длинная версия:

Я работаю над переносом встроенной части оболочки нашего гибридного приложения на Android. В iOS я могу использовать WKWebView как способ отображения предпросмотра документов различного типа, включая, в частности, документы Word (.docx) и файлы PDF.

Используя намерения просмотра, я могу заставить Android открыть PDF-файл в средстве просмотра Adobe, но перед установкой я получу исключение из-за того, что приложение для просмотра типа файла не может быть найдено. Неужели в Android нет собственной поддержки чего-то такого распространенного? Приложение «Файлы» на моем телефоне (где я могу просматривать загрузки и т. Д.) Может открывать и показывать PDF-файлы, но явно не регистрирует этот факт в операционной системе.

1 Ответ

0 голосов
/ 15 ноября 2018

Есть ли в Android собственный класс, похожий на WKWebView на iOS, который может отображать документы Word и PDF?

Если под «собственным классом» вы подразумеваете «класс Java, встроенный в Android SDK», ответ «не совсем». Там нет ничего для DOCX. Android 5.0+ имеет PdfRenderer, но он предназначен для предварительного просмотра PDF-файлов, созданных с использованием среды печати Android, и не сможет отображать многие произвольные PDF-файлы.

В iOS я могу использовать WKWebView как способ отображения предварительных просмотров различных типов документов, включая документы Word (.docx) и файлы PDF.

Есть открытые и коммерческие библиотеки, которые предлагают это. Я написал о некоторых опциях рендеринга PDF с открытым исходным кодом в начале 2017 года.

Используя намерения просмотра, я могу заставить Android открыть PDF-файл в средстве просмотра Adobe, но перед установкой я получу исключение из-за того, что приложение для просмотра типа файла не может быть найдено.

Это не имеет ничего общего с "нативным классом". Intent обрабатывается приложениями и их зарегистрированными компонентами (в вашем случае, действиями).

В настоящее время не существует приложения, которое является частью проекта Android с открытым исходным кодом (AOSP), которое могло бы быть средством просмотра PDF или средством просмотра других форматов документов. Будет ли оно у любого устройства (например, Google Docs), будет различаться.

Неужели в Android нет поддержки для чего-то такого распространенного?

С точки зрения приложений, производитель устройств не обязан предварительно устанавливать программу просмотра PDF или программу просмотра DOCX. Даже если они есть, разработчикам этих средств просмотра не требуется регистрировать <intent-filter>, который поддерживает любую структуру Intent, которую вы использовали. Поскольку ваш Intent не в вашем вопросе, мы не можем прокомментировать, насколько распространенной или необычной будет поддержка для этого Intent.

...