2011-09-07 34 views
1

我在我的Activities之一中有WebView,我想加載一個Html頁面。該頁面包含jquery-mobile和一些html。所以我做的,我Activity如下:WebView在某些電話上不顯示加載的Html

mWebView=(WebView) findViewById(R.id.MyWebView); 
    mWebView.getSettings().setJavaScriptEnabled(true); 
    mWebView.setWebViewClient(new WebViewClient(){ 
      [...] 
    }); 
    mWebView.loadUrl("http://www.mymobilepage.html"); 

的問題是,該頁面被加載並在模擬器上顯示,並在HTC Desire的,但是當我嘗試加載它在LG的Optimus One沒有得到顯示。事件onPageStartedonPageFinished都在我的WebViewClient中被解僱,但只顯示一個空白頁面,並且我的LogCat中也沒有任何錯誤。

在此先感謝。

+1

讓沒有jQuery的一個簡單的HTML頁面,並嘗試呢? LG Optimus One仍然給你一個空白頁面。它看起來像一種jQuery的問題... –

+0

你可以給這個問題的完整代碼????? –

+0

完整的代碼是什麼?該網頁的?我不能:) –

回答

3

當onPageFinished被調用時,頁面可能無法完全呈現。 documentation指出:

通知主機應用程序頁面已完成加載。這種方法僅適用於主框架。調用onPageFinished()時,渲染圖片可能尚未更新。要獲取新圖片的通知,請使用onNewPicture(WebView,Picture)。

但是,請注意,onNewPicture被記錄爲已棄用且已過時。我詢問替換/替代here

0

這應該是一個評論,但由於它有一些代碼,我已經添加爲響應。

嘗試改變默認的背景透明,並儘快在頁面加載提醒,只是要確保至少在HTML被解釋:

mWebView = (WebView) this.findViewById(R.id.webview); 
    mWebView.setBackgroundColor(0); 
    mWebView.getSettings().setJavaScriptEnabled(true); 
    mWebView.getSettings().setJavaScriptCanOpenWindowsAutomatically(false); 
    mWebView.setWebViewClient(new WebViewClient(){ 
     @Override 
     public void onPageFinished(WebView view, String url) 
     { 
     super.onPageFinished(view, url); 
     view.loadUrl("javascript:(function() { alert('hello'); })()"); 
     } }); 

和加載網頁時:

mWebView.clearView(); 
    mWebView.loadUrl("http://yourmobilepage.something/"); 

並讓我們知道是否發生了什麼事。

+0

您必須爲您的WebView定義自己的alert()處理程序.... – NoBugs

0

試試這個:

webView.post(new Runnable() { 

     @Override 
     public void run() { 
      // Your code here... 

     } 
    }); 
0

有你在模擬器上不同的版本檢查你的HTML/JS代碼?較新的Android版本具有較新版本的WebKit,這可能是問題所在。

我還會檢查您是否將LogCat設置爲僅顯示錯誤消息或Debug + Info + Warning +錯誤消息。根據this,javascript錯誤應顯示爲調試消息。

0

我有一個類似的問題這一點,我發現打電話的ClearView然後重新裝入似乎把它清除掉 - 如:

mWebView.clearView(); 
mWebView.loadUrl("http://yourmobilepage.something/"); 
mWebView.reload(); 
相關問題