0
votes

Comment éviter que cliquez sur une URL lorsqu'il n'y a pas de connexion Internet - Studio Android

J'utilise Android Studio pour convertir mon site Web dans l'application Android. J'essaie d'afficher la boîte de dialogue lorsqu'il n'est pas une connexion Internet à l'ouverture. Cela fonctionne bien.

Mais le problème est que lorsque l'application est toujours en cours d'exécution et qu'il n'y a pas de connexion Internet. Ensuite, si je clique sur une URL, la page WebView "page Web non disponible". P>

Web Page non disponible p>

MainActivity.java strong> p> xxx pré>

détecteconnection.java strong> p >

package com.example.mycollege;

import android.content.Context;
import android.net.ConnectivityManager;


public class DetectConnection {
    public static boolean checkInternetConnection(MainActivity context) {

        ConnectivityManager con_manager = (ConnectivityManager)
                context.getSystemService(Context.CONNECTIVITY_SERVICE);

        return (con_manager.getActiveNetworkInfo() != null
                && con_manager.getActiveNetworkInfo().isAvailable()
                && con_manager.getActiveNetworkInfo().isConnected());
    }
}


0 commentaires

3 Réponses :


0
votes

Votre classe forte> mywebClient strong> sera comme:

// Function to load all URLs in same webview
private class myWebClient extends WebViewClient {
  public boolean shouldOverrideUrlLoading(WebView view, String url) {
    if (!DetectConnection.checkInternetConnection(this)) {
      Toast.makeText(getApplicationContext(), "No Internet!", Toast.LENGTH_SHORT).show();
    } else {
      view.loadUrl(url);
    }     
    return true;
  }
}


4 commentaires

Je le change Sir @pratik Butani, mais il affiche ce message "Erreur: Types incompatibles: MainActivity.MywebClient ne peut pas être converti en MainActivity" . L'erreur se réfère à la "this" dans ! DetectConnection.CheckinternetConnection (this) . Des idées?


Changer Ceci à MainActivity.C'est


Je pense que vous devriez apprendre les concepts de base qui vous aiderez à résoudre ce type de problèmes de base.


Je change CETTE à MainActivity.C'est et il n'y a pas d'erreur. Mais ce n'est pas résoudre le problème.



0
votes

Premier: strong>

dans votre méthode ONCLICK de bouton de premier ordre Si Internet est disponible ou non p>

Ajoutez cette méthode dans votre activité: P>

boolean isNetworkAvailable = CommonMethods.isNetworkAvailable(this);
        if (isNetworkAvailable){
            // Call the webpage
        }else {
            Toast.makeText(this, "No internet connection", Toast.LENGTH_SHORT).show();
        }


2 commentaires

Alors Sir @Makarand, comment appelez-vous CommonMethods ?


@MoHamedfall CommonMethod est une classe distincte. Créé pour des méthodes communes aux besoins de projet. Il suffit de copier et de coller la méthode ISNetworkAnable, vous pouvez alors l'appeler de n'importe où.



0
votes

Vérifiez ces deux méthodes lorsque vous cliquez sur l'heure, si le réseau est disponible, procédez aux actions

1 - pour la connexion de chèque: p>

<uses-permission android:name="android.permission.INTERNET" />
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />
<uses-permission android:name="android.permission.ACCESS_WIFI_STATE" />


0 commentaires