我想在我的Android應用程序中呈現使用jQueryMobile創建的頁面,但我需要在脫機狀態下在webView中執行此操作。jQuery Mobile在從本地資源加載時不能在WebView中工作
爲此,我開始複製我的頁面的index.html文件,並將所有必需的資源直接存儲到設備的內部存儲器中。然後,我在我的設備和Chrome應用程序的內部瀏覽器中輸入了file:///sdcard/index.html
,然後使用jQuery樣式和所有網站顯示出來的網站很好。
然後我進入我的應用程序,在那裏我有一個webView,這就是我實際需要呈現上述頁面的地方。我加載使用loadDataWithBaseURL()
(因爲這是我最後需要做的)的頁面是這樣的:
loadDataWithBaseURL("file:///android_asset/web/", html, "text/html", "UTF-8", null);
我把我所有的財產在我的資產文件夾中的網站目錄。
問題是,如果我加載沒有資產引用的頁面(通常只是調用loadUrl
),它會加載但顯然沒有樣式或功能。當我把資產引用號碼loadDataWithBaseURL
確實正確地讀取了資產引用,但渲染停留在jqueryMobile的旋轉輪上,頁面從未實際加載。這是我所看到的:
所以總結起來:
我創建使用jQuery Mobile的網站。這只是一個簡單的html 頁面,帶有jQuery的樣式。
我已準備好用於離線加載。我將所需資產 打包到一個文件夾中,並在index.html中引用這些資產(例如
href="web/styles.css"
)。如果我在我的桌面瀏覽器中加載此頁面,沒有連接,它 作品。
如果我加載該頁面在自己的移動瀏覽器(Chrome或內部
一個),它的工作原理。如果我打開這個網頁沒有在我的WebView資產的引用, 它的工作原理(無定型或圖像等)
如果我打開這個網頁與資產參考在我的網絡視圖中,它
不起作用,它與轉輪粘在一起。連接不會影響問題。如果我刪除引用JQM樣式錶行,然後在頁面 下載,而它的造型,但圖像正確加載(所以 參考資產是正確的)
注意,紡車甚至不應該擺在首位,因爲在JQM我完全禁止使用AJAX的出現:
<script>
$.mobile.ajaxEnabled = false;
</script>
奇薄g是AFAIK內部的Android網絡瀏覽器和webviews共享相同的渲染器,所以我迷失在這裏可能發生的事情,並且由於它對普通瀏覽器可以正常工作,所以我可以調試發生了什麼。
供參考,這是我如何定義我的web視圖:
mWebView = (WebView) findViewById(R.id.webView);
WebSettings s = mWebView.getSettings();
s.setJavaScriptEnabled(true);
我有一堆其他的設置,但爲了簡化我刪除它們,問題仍然存在問題的緣故。
有什麼建議嗎?
PD。按要求發佈index.html文件。這是最簡單的例子,只是一個空索引。問題依然存在:
<!doctype html>
<html lang=es>
<head>
<meta charset="utf-8">
<meta name="apple-mobile-web-app-capable" content="yes">
<meta name="apple-touch-fullscreen" content="yes">
<meta name="viewport" content="width=device-width, initial-scale=1, maximum-scale=1">
<meta name="format-detection" content="telephone=no" />
<meta name="HandheldFriendly" content="true" />
<meta name="MobileOptimized" content="320" />
<head>
<title>
My title
</title>
<script>
$.mobile.ajaxEnabled = false;
</script>
<script src="script/jquery/jquery-1.9.1.min.js"></script>
<script src="script/jquery/jquery.mobile-1.3.2.min.js"></script>
<link href="css/jquery.mobile-1.3.2.min.css" rel="stylesheet" media="screen" type="text/css" />
</head>
<body>
</body>
</html>
請顯示index的代碼。html –
剛發佈了簡化版,問題依然存在 –
我剛剛發現註釋掉jQM的css行會使頁面加載(但沒有造型,顯然),所以看起來這是一個與css相關的問題 –