2012-04-23 126 views
0

我需要在我的android应用程序中显示一个Webview。问题是,我试图显示此网页给出了一个错误:在我的android应用程序中显示webview的错误

"This page contains the following errors: 

error on line xxx at column xxx: Entity 'abc' is not defined 

Below is the rendering of the page upto the first error" 

该网站工作正常在我的手机浏览器,也是我的桌面上。另外,我没有得到与其他网站的这个错误

有反正我可以避免这个错误。请帮助。

这是java代码:

public class Zero extends Activity { 

    WebView wv; 

    @Override 
    protected void onCreate(Bundle savedInstanceState) { 
     // TODO Auto-generated method stub 
     super.onCreate(savedInstanceState); 
     getWindow().requestFeature(Window.FEATURE_PROGRESS); 
     setContentView(R.layout.zero); 



     wv=(WebView) findViewById(R.id.web); 
     wv.getSettings().setJavaScriptEnabled(true); 
     //wv.loadUrl("http://customercare.indianrailways.gov.in/criscm/common/complaint_registration.seam"); 
     wv.loadUrl("http://ndtv.com"); 
     wv.setWebViewClient(new HelloWebViewClient()); 

     final Activity activity = this; 

     wv.setWebChromeClient(new WebChromeClient(){ 

      public void onProgressChanged(WebView view, int progress) { 
        activity.setTitle("Loading..."); 
        activity.setProgress(progress * 100); 
         if(progress == 100) 
          activity.setTitle("Easy Complaint Indian Railways"); 
        } 
    }); 

    } 

    private class HelloWebViewClient extends WebViewClient { 
     @Override 
     public boolean shouldOverrideUrlLoading(WebView view, String url) { 
      view.loadUrl(url); 
      return true; 
     } 
    } 

    @Override 
    public boolean onKeyDown(int keyCode, KeyEvent event) { 
     if ((keyCode == KeyEvent.KEYCODE_BACK) && wv.canGoBack()) { 
      wv.goBack(); 
      return true; 
     } 
     return super.onKeyDown(keyCode, event); 
    } 
} 

布局XML文件:

<?xml version="1.0" encoding="utf-8"?> 
<WebView xmlns:android="http://schemas.android.com/apk/res/android" 
    android:layout_width="match_parent" 
    android:layout_height="match_parent" 
    android:id="@+id/web"> 
</WebView> 
+0

为什么你定义了2个客户端,你为什么要设置这2个客户端? – 2012-04-23 13:14:55

+0

我按照教程http://developer.android.com/resources/tutorials/views/hello-webview.html。说实话,我不明白教程的某些部分,但我仍然使用它。请让我知道如果我的代码中有任何错误..即,使用2个客户端或其他任何东西 – ambit 2012-04-23 13:30:25

+0

是你的问题解决? – 2012-04-25 02:17:21

回答

0

使用下面的活动来加载您的网址:::

public class WebViewsScreenActivity extends Activity { 

private WebView mwebview; 
private WebViewsScreenActivity _activity; 
ProgressDialog _dilog; 

    /** Called when the activity is first created. */ 
    @Override 
    public void onCreate(Bundle savedInstanceState) { 
    super.onCreate(savedInstanceState); 
    getWindow().requestFeature(Window.FEATURE_PROGRESS); 
    setContentView(R.layout.webview); 
    _activity = this; 
    mwebview=(WebView)findViewById(R.id.webview); 
       mwebview.getSettings().setJavaScriptEnabled(true); 
       mwebview.getSettings().setJavaScriptCanOpenWindowsAutomatically(true); 

    if(checkInternetConnection(_activity)){ 
    if(savedInstanceState==null)  
          mwebview.loadUrl(webUrl); 
    else 
    mwebview.restoreState(savedInstanceState); 
    } 
    else{ 
    //showAlert "Unable to Connect Server" 
    } 
     mwebview.setWebChromeClient(new WebChromeClient() { 

      @Override 
    public void onProgressChanged(WebView view, int progress) { 
      if(mwebview.getVisibility()==View.VISIBLE) 
      { 
      WebViewsScreenActivity .this.setProgress(progress * 100); 

      } 
      } 
      }); 
     mwebview.setWebViewClient(new HelloWebViewClient()); 
} 

@Override 
public boolean onKeyUp(int keyCode, KeyEvent event) { 
    // TODO Auto-generated method stub 
    if(keyCode == KeyEvent.KEYCODE_BACK) 
    { 
    mwebview.goBack(); 
    return true; 
    } 
    else 
    return super.onKeyUp(keyCode, event); 
} 


//To check whether network connection is available on device or not 
private boolean checkInternetConnection(Activity _activity) { 
    ConnectivityManager conMgr = (ConnectivityManager) _activity.getSystemService(Context.CONNECTIVITY_SERVICE); 
    if (conMgr.getActiveNetworkInfo() != null 
    && conMgr.getActiveNetworkInfo().isAvailable() 
    && conMgr.getActiveNetworkInfo().isConnected()) 
    return true; 
    else 
    return false; 
}//checkInternetConnection() 



    //HelloWebViewClient class for webview 
    private class HelloWebViewClient extends WebViewClient { 

    @Override 
    public void onPageStarted(WebView view, String url, Bitmap favicon) { 
     // TODO Auto-generated method stub 
     super.onPageStarted(view, url, favicon); 
    } 
    @Override 
    public void onReceivedError(WebView view, int errorCode, 
     String description, String failingUrl) { 
     // TODO Auto-generated method stub 
     super.onReceivedError(view, errorCode, description, failingUrl); 

    } 
    @Override 
    public void onPageFinished(WebView view, String url) { 
     // TODO Auto-generated method stub 
     super.onPageFinished(view, url); 
    } 
} //HelloWebViewClient-class 
}//AccountsScreenActivity-class 

注::不要忘记在你的文件中添加必要的权限。

+0

我试过你的代码,但仍然收到相同的错误。我认为网站有问题。但令人惊讶的是,当我使用浏览器打开网站时,这个错误并没有出现。无论如何,谢谢,请让我知道,如果你可以建议任何其他事情。 – ambit 2012-04-27 07:27:48

+0

什么是网址? – 2012-04-27 07:28:37

+0

这是网址:http://customercare.indianrailways.gov.in/criscm/common/complaint_registration.seam – ambit 2012-04-27 08:29:44

相关问题