其实我想从互联网链接加载完整的网站,但我想从移动设备加载css文件(不是从互联网上加载)。因为我想使用内部本地css文件加载所有页面。
示例:
<!DOCTYPE html>
<html lang="en">
<head>
<link rel="stylesheet" href="dist/css/bootstrap.min.css" />
<link rel="stylesheet" href="dist/css/font-awesome.min.css" />
</head>
</html>
所以我想加载&#34; bootstrap.min.css &#34;和&#34; font-awesome.min.css &#34;仅来自移动存储器。
我的Android代码:
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
String url = "http://www.MySiteName.com/";
view = (WebView) this.findViewById(R.id.webView);
view.getSettings().setJavaScriptEnabled(true); // Enable JavaScript Support
view.setWebViewClient(new WebViewClient()); // Links open or Navigate in same webView not in Browser
view.loadUrl(url);
}
答案 0 :(得分:7)
请将CSS放在assets文件夹中,并通过相对路径引用CSS,并通过loadDataWithBaseURL()
方法将HTML加载到WebView:
如果您的css
文件名是 mycss.css
StringBuilder data = new StringBuilder();
data .append("<HTML><HEAD><LINK href=\"mycss.css\" type=\"text/css\" rel=\"stylesheet\"/></HEAD><body>");
data .append(tables.toString());
data .append("</body></HTML>");
webView.loadDataWithBaseURL("file:///android_asset/", data .toString(), "text/html", "utf-8", null);
谢谢
答案 1 :(得分:6)
因为另外两个答案只是复制意大利面而我碰巧有同样的问题,我会帮助你解决问题:
您需要在html文件的head部分指定文件路径。 请注意 href
之后的部分<!DOCTYPE html>
<html lang="en">
<head>
<link rel="stylesheet" href="file:///android_asset/bootstrap.min.css" />
<link rel="stylesheet" href="file:///android_asset/font-awesome.min.css" />
</head>
</html>
我无法理解为什么其他海报只是复制和粘贴,甚至没有读到你想告诉他们的内容。
我希望这会有所帮助。
请注意,您的资源文件夹的名称可以不同。