使用的WebView loadDataWithBaseURL不加载SD卡从图像(Using webV

2019-07-30 17:22发布

我想设置我的WebView一些图片一些HTML内容。 我读过在互联网上我必须使用loadDataWithBaseUrl做这样的事,因为我需要的图像(basUrl)的文件夹中,以便链接。

我的HTML内容加载很好,我甚至可以跑的JavaScript完美的,但由于某种原因无法加载我的图片。

那个我看有一些安全方面的原因而这就是为什么我不能加载图片来自SD卡的WebView有的说,它可以通过loadDataWithBaseUrl很容易做到,所以我真的不知道哪一个是真的。

这里是我的方法我试过,也许有一些错误,所以不要粗鲁:

我得到了我的html文件在这里:

mnt/sdcard/com.mypackage.myproject/3/3.html

我的图片在这里:

mnt/sdcard/com.mypackage.myproject/3/images/Cover.png

这是我的内容加载:

myWebView.loadDataWithBaseURL("file:///mnt/sdcard/com.mypackage.myproject/3", myHtml, "text/html", "utf-8", "");

在我的html代码:

<img src="images/Cover.png" alt="Cover.png" height="820"/>

所以,当你看到我给的baseUrl,以及由于某种原因的WebView不能加载我的图片。

正如许多人说,这可能是一个解决方案:

mWebView = (WebView) findViewById(R.id.webview);
mWebView.getSettings().setAllowFileAccess(true);
mWebView.getSettings().setJavaScriptEnabled(true);
mWebView.getSettings().setBuiltInZoomControls(true);
String base = Environment.getExternalStorageDirectory().getAbsolutePath().toString();
String imagePath = "file:/"+ base + "/test.jpg";
String html = "<html><head></head><body><img src=\""+ imagePath + "\"></body></html>";
mWebView.loadData(html, "text/html","utf-8");

但是,我有700个不同的HTML文件,有很多图像许多不同的地方......所以我不能修改HTML代码。

有没有一种方法,以图像文件夹链接到我的HTML文件才能正常使用它们作为一个的baseUrl?

Answer 1:

您的加载语句中的语法错误。 你必须把:file

myWebView.loadDataWithBaseURL("file:///mnt/sdcard/com.mypackage.myproject/3", myHtml, "text/html", "utf-8", "");


文章来源: Using webView's loadDataWithBaseURL not loading images from sdcard