2015-05-24 1 views
-1

Использование Android WebView, как заставить приложение закрыть, если телефон не подключен к Интернету?Принудительное закрытие приложения, если в веб-браузере нет подключения к Интернету

В противном случае, если это невозможно, есть ли способ показать страницу 404 html, если пользователь отключен.

Вот мой код:

public class MainActivity extends Activity { 

private WebView webView; 
    public void onCreate(Bundle savedInstanceState) { 

     super.onCreate(savedInstanceState); 
     setContentView(R.layout.show_web_view); 

     webView = (WebView) findViewById(R.id.webView1); 

     startWebView("http://example.com/appsite/index.php"); 

    } 

    private void startWebView(String url) { 

     webView.setWebViewClient(new WebViewClient() {  
       ProgressDialog progressDialog; 

       public boolean shouldOverrideUrlLoading(WebView view, String url) {    
        view.loadUrl(url); 
        return true; 
       } 

       public void onLoadResource (WebView view, String url) { 
        if (progressDialog == null) { 

         progressDialog = new ProgressDialog(MainActivity.this); 
         progressDialog.setMessage("Loading..."); 
         progressDialog.show(); 
        } 
       } 
       public void onPageFinished(WebView view, String url) { 
        try{ 
         if (progressDialog.isShowing()) { 
          progressDialog.dismiss(); 
          progressDialog = null; 
         } 
        }catch(Exception exception){ 
         exception.printStackTrace(); 
        } 
       } 
      }); 
     webView.getSettings().setJavaScriptEnabled(true); 

     webView.loadUrl(url); 
    } 
} 

ответ

1

Прежде всего, вы должны попробовать некоторый код или искать лучше, это такой вопрос уже было сделано много здесь, в этом сообществе.

Ну, ниже код, который может помочь вам в вашей проблеме:

Создать метод, проверьте, если есть или нет подключения к

public boolean hasConnectivity(Context context) { 
    if (context != null) { 
     ConnectivityManager connectivityManager = (ConnectivityManager) context 
       .getApplicationContext().getSystemService(
         Context.CONNECTIVITY_SERVICE); 
     NetworkInfo networkInfo = connectivityManager 
       .getActiveNetworkInfo(); 

     return networkInfo != null && networkInfo.isAvailable() 
       && networkInfo.isConnected(); 
    } else { 
     return false; 
    } 
} 

А потом, звоните в ваш OnCreate метод:

if (hasConnectivity(this)) { 
     startWebView("http://example.com/appsite/index.php"); 
    } else { 
     Toast.makeText(this, "you do not have connection", Toast.LENGTH_LONG).show(); 
} 

Не забудьте добавить в ваш AndroidManifest.xml это разрешения:

<uses-permission android:name="android.permission.INTERNET" /> 
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" /> 
Смежные вопросы