Изображения с SD-карты не загружаются в WebView - PullRequest
0 голосов
/ 11 ноября 2019

У меня следующий HTML-код загружен в String.

<html>
    <body>
        <img style="width:100%" src="file://storage/emulated/0/sdcard/Download/Page1.jpg"/>
        <img style="width:100%" src="file://storage/emulated/0/sdcard/Download/Page2.jpg"/>
        <img style="width:100%" src="file://storage/emulated/0/sdcard/Download/Page3.jpg"/>
        <img style="width:100%" src="file://storage/emulated/0/sdcard/Download/Page4.jpg"/>
    </body>
</html>

И я пытаюсь загрузить HTML в WebView в моем приложении следующим образом.

webView.getSettings().setAllowFileAccess(true);
webView.getSettings().setJavaScriptEnabled(true);
webView.loadDataWithBaseURL(null, html, "text/html", "utf-8", "");

У меня есть следующие разрешения в AndroidManifest.xml, и я убедился, что разрешения предоставлены.

<uses-permission android:name="android.permission.INTERNET" />
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />
<uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE" />

Я прошел через много ответов в SO (например, this ), но, похоже, не могу найти решение для загрузки изображений с SD-карты в мой WebView. Я также удостоверился, что изображения не повреждены (я могу просмотреть эти изображения с помощью приложения Галерея). есть идеи?

Я не нашел ни одной ошибки в logcat. Однако возможный логкат, связанный с этой проблемой, может быть следующим (хотя я не уверен).

W/cr_CrashFileManager: /data/user/0/com.example.myapp/cache/WebView/Crash Reports does not exist or is not a directory

Вот как это выглядит, когда WebView пытается загрузить изображения.

enter image description here

Заранее спасибо за ваше время!

1 Ответ

0 голосов
/ 12 ноября 2019

Вместо использования Environment.getExternalStorageDirectory я использовал /sdcard/Downloads, который, кажется, решил проблему. Итак, последний сгенерированный HTML-код работает следующим образом.

<html>
    <body>
        <img style="width:100%" src="file://sdcard/Download/Page1.jpg"/>
        <img style="width:100%" src="file://sdcard/Download/Page2.jpg"/>
        <img style="width:100%" src="file://sdcard/Download/Page3.jpg"/>
        <img style="width:100%" src="file://sdcard/Download/Page4.jpg"/>
    </body>
</html>
...