2012-08-29 69 views
1

我完全不知道這是否是做了正確的方式,但只要我正在顯示啓動畫面作爲web視圖加載,當web視圖加載完成,我顯示的WebView 。的Android的WebView不渲染HTML內容正確

但WebView中的HTML內容沒有被正確地渲染。它在我的Android手機的內置瀏覽器以及我擁有的其他所有設備上正確顯示內容。 所以這個問題僅限於這個應用程序。

MainActivity.java

package dk.zerone.vuc; 

import android.net.ConnectivityManager; 
import android.net.NetworkInfo; 
import android.os.Bundle; 
import android.app.Activity; 
import android.app.AlertDialog; 
import android.content.Context; 
import android.content.DialogInterface; 
import android.graphics.Color; 
import android.util.Log; 
import android.view.Menu; 
import android.view.View; 
import android.webkit.WebView; 
import android.webkit.WebViewClient; 

public class MainActivity extends Activity { 

public final boolean networkCheck() { 
    ConnectivityManager connec = (ConnectivityManager)getSystemService(Context.CONNECTIVITY_SERVICE); 

    if (connec.getNetworkInfo(0).getState() == NetworkInfo.State.CONNECTED || 
    connec.getNetworkInfo(0).getState() == NetworkInfo.State.CONNECTING || 
    connec.getNetworkInfo(1).getState() == NetworkInfo.State.CONNECTING || 
    connec.getNetworkInfo(1).getState() == NetworkInfo.State.CONNECTED) { 
     return true; 
    } else if (connec.getNetworkInfo(0).getState() == NetworkInfo.State.DISCONNECTED || connec.getNetworkInfo(1).getState() == NetworkInfo.State.DISCONNECTED ) { 
     return false; 
    } 
    return false; 
} 

@Override 
public void onCreate(Bundle savedInstanceState) { 
    super.onCreate(savedInstanceState); 

    /* Splash screen */ 
    setContentView(R.layout.splash); 

    if(networkCheck()) { 

     String url = "http://mobil.vucfyn.dk/mobil"; 

     final WebView webview; 
     webview = new WebView(MainActivity.this); 
     webview.loadUrl(url); 

     webview.setWebViewClient(new WebViewClient() { 
      @Override 
      public boolean shouldOverrideUrlLoading(WebView view, String url) { 
       //view.loadUrl(url); 
       return false; 
      } 

      @Override 
      public void onPageFinished(WebView view, String url) { 
       super.onPageFinished(view, url); 
       setContentView(webview); 

      } 
     }); 

    } else { 
     AlertDialog alertDialog = new AlertDialog.Builder(MainActivity.this).create(); 
     alertDialog.setTitle("Fejl"); 
     alertDialog.setMessage("Ingen forbindelse til internettet"); 

     alertDialog.setButton("OK", new DialogInterface.OnClickListener() { 
      public void onClick(DialogInterface dialog, int which) { 

      } 
     }); 
     alertDialog.show(); 
    } 
    } 

@Override 
public boolean onCreateOptionsMenu(Menu menu) { 
    getMenuInflater().inflate(R.menu.activity_main, menu); 
    return true; 
    } 
} 

logcat的輸出:

08-29 09:29:56.572: D/dalvikvm(545): GC_FOR_ALLOC freed 66K, 3% free 10191K/10503K, paused 58ms 
08-29 09:29:56.579: I/dalvikvm-heap(545): Grow heap (frag case) to 11.036MB for 1048592-byte allocation 
08-29 09:29:56.640: D/dalvikvm(545): GC_CONCURRENT freed 1K, 4% free 11214K/11591K, paused 4ms+4ms 
08-29 09:29:56.849: I/WebView(545): webview.loadUrl(url) 
08-29 09:29:57.139: D/gralloc_goldfish(545): Emulator without GPU emulation detected. 
08-29 09:29:57.849: E/chromium(545): external/chromium/net/disk_cache/backend_impl.cc:1097: [0829/092957:ERROR:backend_impl.cc(1097)] Critical error found -8 
08-29 09:29:58.029: W/chromium(545): external/chromium/net/disk_cache/storage_block-inl.h:119: [0829/092958:WARNING:storage_block-inl.h(119)] Failed data load. 
08-29 09:29:58.029: W/chromium(545): external/chromium/net/disk_cache/storage_block-inl.h:119: [0829/092958:WARNING:storage_block-inl.h(119)] Failed data load. 
08-29 09:29:58.039: W/chromium(545): external/chromium/net/disk_cache/storage_block-inl.h:119: [0829/092958:WARNING:storage_block-inl.h(119)] Failed data load. 
08-29 09:29:58.059: E/chromium(545): external/chromium/net/disk_cache/entry_impl.cc:830: [0829/092958:ERROR:entry_impl.cc(830)] Failed to save user data 
08-29 09:30:00.349: E/libEGL(545): call to OpenGL ES API with no current context (logged once per thread) 
08-29 09:30:00.360: D/ShaderProgram(545): couldn't load the vertex shader! 
08-29 09:30:00.360: E/libEGL(545): call to OpenGL ES API with no current context (logged once per thread) 
08-29 09:30:00.360: D/ShaderProgram(545): couldn't load the vertex shader! 
08-29 09:30:00.360: E/libEGL(545): call to OpenGL ES API with no current context (logged once per thread) 
08-29 09:30:00.360: D/ShaderProgram(545): couldn't load the vertex shader! 
08-29 09:30:00.360: E/libEGL(545): call to OpenGL ES API with no current context (logged once per thread) 
08-29 09:30:00.360: D/ShaderProgram(545): couldn't load the vertex shader! 
08-29 09:30:00.360: E/libEGL(545): call to OpenGL ES API with no current context (logged once per thread) 
08-29 09:30:00.360: D/ShaderProgram(545): couldn't load the vertex shader! 
+0

你使用webview.loadUrl(url)兩次的任何原因? –

+0

不,不是,只是試圖找出問題所在。我已經updatet上面的代碼,我已經commentet了'使用loadURL(URL)''中shouldOverrideUrlLoading()'web視圖仍然無法正確顯示HTML內容。任何幫助是極大的讚賞。 :) – user1599309

回答

1

如果網站的JavaScript你缺少這一行:

webView.getSettings().setJavaScriptEnabled(true); 

如果你的目標是高於2.3 .3嘗試在你的清單文件中添加這個。

android:hardwareAccelerated="true" 
+0

非常感謝你,我不知道默認情況下沒有啓用JavaScript。 – user1599309

+0

歡迎您。人們往往會忘記它,假設它在android中默認啓用。 –

+0

不工作4我... – sheetal