2013-04-22 19 views
9

處理HTML文件(test.html的)是Twitter的引導不是在Android的WebView中

<!DOCTYPE html> 
<html> 
<head> 
    <meta charset="utf-8" /> 
    <meta name="viewport" content="width=device-width" /> 
    <link href="bootstrap.css" rel="stylesheet" type="text/css"/> 
    <link href="bootstrap-responsive.css" rel="stylesheet" type="text/css"/> 
</head> 
<body> 
<h1>Hello World!!!</h1> 
<a class="btn btn-primary btn-large"> 
    Learn more 
</a> 
</body> 
</html> 

HTML和CSS的引導文件都放在資產的文件夾。如果我在IE/Firefox中打開HTML文件,它會正確顯示。但是Android的WebView不渲染的WebView這個正確

代碼是

WebView webView = (WebView) findViewById(R.id.webview); 
webView.getSettings().setJavaScriptEnabled(true); 
String url = "file:///android_asset/test.html"; 
webView.loadUrl(url); 

IE呈現它像這樣

IE Renders it like this

的WebView呈現像這樣

WebView Renders it like this

什麼是錯的?

+1

有你迷上你的設備到您的電腦,看看是否CSS文件加載(即不404'ing)。 – munch1324 2013-04-22 13:09:14

+1

我已經設置了一個測試項目,您的代碼無法在仿真器和設備上重現此問題。你能詳細說明你的環境,android級別,引導版本等嗎? – Philzen 2013-08-14 18:19:34

+0

css可能(雖然不太可能)使用從外部源進口 - 如果'\t <使用權限android:name =「android.permission.INTERNET」/>'沒有在Manifest中設置,可能是您的解釋。 – Philzen 2013-08-14 18:24:00

回答

2

添加此行

webView.getSettings().setDomStorageEnabled(true); 
+0

這是不必要的,沒有存儲被訪問。 setJavaScriptEnabled(true)對於這個特定的例子也是不必要的,雖然它不是問題,我相信它計劃在以後使用。 – 2013-09-23 20:46:16

1

測試在仿真器 - Android版4.2與引導V2.3.2

文件中我的應用程序的資產文件夾:

bootstrap-responsive.css 
bootstrap.css 
test.html 

無需添加「機器人.permission.INTERNET「,因爲css文件在應用程序的資產文件夾中本地可用。

下面是它如何呈現的屏幕截圖。除非CSS文件存在問題(因爲您可以在瀏覽器中看到結果,所以再也不可能),所以沒有理由不能看到它。

enter image description here