使用webview的loadDataWithBaseURL不能从sdcard加载图像

问题描述 投票:1回答:2

我想在Web视图中设置一些带有一些图片的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?

我想在Web视图中设置一些带有一些图片的html内容。我已经在互联网上阅读过,我必须使用loadDataWithBaseUrl来执行此操作,因为我需要链接图像文件夹(basUrl)...
android url android-webview android-sdcard
2个回答
3
投票

0
投票
© www.soinside.com 2019 - 2024. All rights reserved.