Схема URL-адреса Android, чтобы открыть файл из ссылки браузера? - PullRequest
0 голосов
/ 01 мая 2018

В Android (8.0) я пытаюсь создать локальный html-файл, который содержит ссылки на некоторые локальные файлы, которые не могут быть просмотрены напрямую Chrome, например <a href="relative_path_to_file/file.docx">. В обычном веб-браузере (то есть на ПК) я могу щелкнуть ссылку, и он откроет файл в средстве просмотра по умолчанию. В Android, если я открою один из локальных html-файлов в Chrome и нажму одну из этих ссылок, он перенаправит меня на содержимое: //nextapp.fx.FileProvider/path_to_file/file.docx, показывающее «Ваш файл не найден». У меня установлено соответствующее приложение для просмотра файла (я могу открыть его через приложение проводника). Я хотел бы понять, как я могу структурировать URL-адреса таким образом, чтобы доступ к документам различных типов (например, docx, xlsx, pdf и т. Д.) Осуществлялся по ссылкам, которые на них ссылаются. Если щелкнуть ссылку, откроется файл, так как делает при доступе к файлу из файлового менеджера.

  • Я попытался переписать ссылки на абсолютный путь, т.е. "/storage/emulated/0/path/file.docx." Результат тот же.
  • Я попытался переписать ссылки на «file: ///storage/emulated/0/path/file.docx». Chrome просто перенаправляет примерно на: blank.
  • Я попытался открыть HTML-документ с помощью "HTML Viewer", а не Chrome. Поведение более или менее одинаково (в первом случае он перенаправляет на about: blank, во втором - «Нет приложения, доступного для открытия ссылки»).

Как структурировать ссылку, чтобы на нее можно было щелкнуть и открыть файл, на который делается ссылка, в соответствующем средстве просмотра?

1 Ответ

0 голосов
/ 01 мая 2018

Наконец-то разобрался. Рабочая ссылка для открытия локального файла в средстве просмотра по умолчанию выглядит следующим образом:

"intent:///abs/path/to/file.docx#Intent;scheme=file;action=android.intent.action.VIEW;end;"

... С одним важным предупреждением: оно ломается, если в пути есть какие-либо "точки" (т.е. у меня были файлы в .hiddenFolder, что, очевидно, приводит к тому, что Chrome не может определить целевую ссылку).

Ссылка: https://developer.chrome.com/multidevice/android/intents

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