2012-10-02 64 views
1

我想我的應用程序能夠給我自己的自定義錯誤消息,如果應用程序無法連接到互聯網。我不知道該怎麼辦我嘗試做一個敬酒,但不工作。Android WebView自定義錯誤

WebView mWebView; 

/** Called when the activity is first created. */ 
@Override 
public void onCreate(Bundle savedInstanceState) 
{ 
    super.onCreate(savedInstanceState); 


    this.getWindow().requestFeature(Window.FEATURE_PROGRESS); 
    setContentView(R.layout.main); 


    getWindow().setFeatureInt( Window.FEATURE_PROGRESS, Window.PROGRESS_VISIBILITY_ON); 


    mWebView = (WebView) findViewById(R.id.MyWebview); 
    mWebView.getSettings().setJavaScriptEnabled(true); 



    mWebView.loadUrl("http://mywebpage.html"); 

    final Activity MyActivity = this; 
    mWebView.setWebChromeClient(new WebChromeClient() { 
    public void onProgressChanged(WebView view, int progress) 
    { 

     MyActivity.setTitle("Loading..."); 
     MyActivity.setProgress(progress * 100); 


     if(progress == 100) 
      MyActivity.setTitle(R.string.app_name); 
     } 
    }); 

回答

1

在調用Android WebView之前,您可以檢查設備是否連接到互聯網。如果設備已連接,則返回以下方法:

public boolean isConnected(Activity activity) { 
    ConnectivityManager connectivityManager = (ConnectivityManager) activity 
      .getSystemService(Context.CONNECTIVITY_SERVICE); 
    NetworkInfo activeNetworkInfo = connectivityManager 
      .getActiveNetworkInfo(); 
    return activeNetworkInfo != null && activeNetworkInfo.isConnectedOrConnecting(); 
} 

最好將它放在單獨的類中。在啓動Android WebView之前,您可以調用此方法。如果返回false,則顯示一條消息,要求用戶連接到互聯網,否則只需打開鏈接。

+0

請不要忘記您的清單中的權限「android.permission.ACCESS_NETWORK_STATE」! – alopix