2013-12-09 60 views
0

我試圖在我的Android應用程序中使用WebView實現Flot圖表。基本上我有一個Fragment其中包含WebView。我還有一個刷新按鈕,通過從Web服務中檢索新數據並將它們放入圖表中來刷新Fragment(以及WebView)。Android WebView中的jQuery Flot圖表庫無法正常工作

我遇到的問題是WebView首次啓動時(創建片段時)要麼不顯示圖表,要麼顯示較小的圖表(即半屏)。 當我點擊刷新圖表顯示罰款沒有任何問題,所以問題是隻有當片段第一次創建。

我做onCreateView調用此:

chartWebView.loadUrl("file:///android_asset/index.html"); 

而且我有一個AsyncTask從服務器獲取數據,然後在網頁視圖這樣調用的javascript:

chartWebView.loadUrl("javascript:displayChart(" + data + ")"); 

我也改寫了onResume方法,我稱之爲refresh()函數。

refresh()方法基本上執行AsyncTask重新加載數據,這在onPostExecute(...)調用在WebView上的JavaScript。

任何提示?

+0

在繪製圖之前,您是否將flot圖的佔位符「div」設置爲固定的寬度和高度? – Raidri

回答

2

只是一個猜測,但...

webView.loadUrl()是異步的。我認爲你的第一個AsyncTaskloadUrl完成之前執行。我建議你在onPageFinished中做最初的displayChart

+0

我相信這是問題所在。正如我測試,看到JavaScript沒有得到執行。我現在試試吧 – TGO

+0

它解決了,謝謝!儘管「小圖表」問題仍在發生,但我在WebView似乎調整自己以適應屏幕一段時間後對其進行了排序,但$(window).resize()對其進行了修正。 – TGO