我想在我的webview中设置一些带图片的html内容。我在网上阅读到需要使用loadDataWithBaseUrl函数来实现这一点,因为我需要链接图片文件夹的basUrl以便按顺序显示图片。
我的html内容能够正常加载,甚至可以完美运行javascripts,但由于某些原因,我的图片无法加载。
我曾经在某个地方读到过一些安全原因,这就是为什么我不能将sd卡中的图片加载到webview中,还有一些人说可以通过loadDataWithBaseUrl轻松实现,所以我真的不知道哪一个是正确的。
以下是我尝试的方法,可能有些错误,请不要粗鲁:
我在这里获取了我的html文件:
我的html内容能够正常加载,甚至可以完美运行javascripts,但由于某些原因,我的图片无法加载。
我曾经在某个地方读到过一些安全原因,这就是为什么我不能将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?