Контекст:Загрузить изображение из местной частной директории в WebView
Мое приложение иногда отображает «Ведомостям», которые являются HTML-файлы, содержащие тексты и изображения:
<p>image description </p>
<p><img src="/api/medias/get/videos/56afad6447eba61c8099544b?thumbnail=true&company=4f86d0a9d655ab9794f5d1d2&fullSizedCover=true"
alt=""
data-id="56afad6447eba61c8099544b"
data-type="video" data-width="640" data-height="1136" /></p>
Затем я использую body.loadDataWithBaseURL(<my api url>, body, "text/html; charset=UTF-8", null, null);
Я не думаю, что это актуально, но я скажу это на всякий случай, у меня есть тело шаблона, содержащее css и javascript. js-скрипт обнаруживает изображения, щелкнув и передавая «идентификатор данных» в метод android (через JavascriptInterface
). В этом случае он открывает видеопроигрыватель и воспроизводит его.
Проблема:
Мое приложение позволяет пользователю загружать эти листы для последнего автономного визуализация. Поэтому я загрузить HTML, а затем загрузить изображения в моей локальной частной директории (Context.getFileDir()
) и изменить ГКЗ HTML, чтобы установить «Ленфильм» источники к изображениям Скачал:
<p>video</p>
<p><img src="69c623955ecb5bd414f908cd383f3809.jpg"
alt=""
data-id="56afad6447eba61c8099544b"
data-type="video" data-width="640" data-height="360" /></p>
Мой вопрос: Что я ставлю в качестве базового url для своего веб-представления для получения ожидаемого поведения (т. е. отобразить загруженные изображения).
Я пробовал Context.getFileDir().getAbsolutePath()
, content://com.android.htmlfileprovider
и некоторые другие.
Должен ли я поступать по-другому?
Спасибо большое,
Это хорошо работает:
Picasso.with(iv.getContext()).load(new File(getContext().getFilesDir() + "/" + "69c623955ecb5bd414f908cd383f3809.jpg")).into(iv);
HTML-:
<p>video</p>
<p><img src="69c623955ecb5bd414f908cd383f3809.jpg" alt="" data-id="56afad6447eba61c8099544b" data-type="video" data-width="640" data-height="360" /></p>
мой базовый URL: baseUrl = Uri.fromFile(getContext().getFilesDir()).toString();
И, наконец: webview.loadDataWithBaseURL(baseUrl, body, "text/html; charset=UTF-8", null, null);
«Я попробовал Context.getFileDir(). GetAbsolutePath(),» - попробуйте это, но с помощью схемы 'file'. Легче использовать 'Uri.fromFile (getFilesDir()). ToString()'. – CommonsWare
Мои изображения по-прежнему не отображаются вместе с этим baseUrl: 'file: /// data/user/0//files', wheareas' new File (Context.getFilesDir() + "/" + "69c623955ecb5bd414f908cd383f3809.jpg") .exists() '== верно. –
@CommonsWare также полезны? (ничего не было, просто добавил, но он ничего не меняет): - 'body.getSettings(). setAllowFileAccess (true);' - 'body.getSettings(). setAllowContentAccess (true) ; ' -' body.getSettings().setAllowFileAccessFromFileURLs (true); ' -' body.getSettings(). setAllowUniversalAccessFromFileURLs (true); ' –