来自 SD 卡的图像未加载到 WebView 中
Images from SD Card is not loaded in the WebView
我将以下 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
中的解决方案。我还确保图像没有损坏(我可以使用 Gallery 应用程序查看这些图像)。有什么想法吗?
我在 logcat 中没有发现任何错误。但是,与此问题相关的可能 logcat 可能如下(虽然我不确定)。
W/cr_CrashFileManager: /data/user/0/com.example.myapp/cache/WebView/Crash Reports does not exist or is not a directory
这是 WebView
尝试加载图像时的样子。
提前感谢您的宝贵时间!
我没有使用 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>
我将以下 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
中的解决方案。我还确保图像没有损坏(我可以使用 Gallery 应用程序查看这些图像)。有什么想法吗?
我在 logcat 中没有发现任何错误。但是,与此问题相关的可能 logcat 可能如下(虽然我不确定)。
W/cr_CrashFileManager: /data/user/0/com.example.myapp/cache/WebView/Crash Reports does not exist or is not a directory
这是 WebView
尝试加载图像时的样子。
提前感谢您的宝贵时间!
我没有使用 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>