0
私はWebViewのを実装し、接続を失ったときに検出したいかだネットワークが中断したときに...(例:デバイスがネットワーク範囲の外に出るとき)Webviewで接続が切断されたか中断されたかを検出する方法はありますか?
とする場合、接続に再接続することができるように再設立。
すべての入力をいただければ幸いです。ありがとう。
私はWebViewのを実装し、接続を失ったときに検出したいかだネットワークが中断したときに...(例:デバイスがネットワーク範囲の外に出るとき)Webviewで接続が切断されたか中断されたかを検出する方法はありますか?
とする場合、接続に再接続することができるように再設立。
すべての入力をいただければ幸いです。ありがとう。
これは、this postの重複のようです。しかし、関連するコードブロックは以下の通りです。これは、エラーをキャッチし、それに従ってUIを変更する方法です。
webView.setWebViewClient(new WebViewClient() {
@Override
public void onReceivedError(final WebView view, int errorCode, String description,
final String failingUrl) {
//control you layout, show something like a retry button, and
//call view.loadUrl(failingUrl) to reload.
super.onReceivedError(view, errorCode, description, failingUrl);
}
});
ブロードキャスト受信機を使用すると、アプリケーション全体でネットワーク接続の喪失を聞くこともできます。あなたは素敵な書き込みを見つけることができますhere。しかし、要は、ネットワーク変更のためにレシーバーを登録して、変更が切断されたかどうかを確認することです。その後、独自のイベントバスを使用して、UIを更新できるブロードキャストを送信することができます。
public class NetworkChangeReceiver extends BroadcastReceiver {
@Override
public void onReceive(final Context context, final Intent intent) {
final ConnectivityManager connMgr = (ConnectivityManager) context
.getSystemService(Context.CONNECTIVITY_SERVICE);
final android.net.NetworkInfo wifi = connMgr
.getNetworkInfo(ConnectivityManager.TYPE_WIFI);
final android.net.NetworkInfo mobile = connMgr
.getNetworkInfo(ConnectivityManager.TYPE_MOBILE);
if (wifi.isAvailable() || mobile.isAvailable()) {
// Do something
Log.d("Network Available ", "Flag No 1");
}
}
}
そして、ここでチェック:
public boolean isOnline(Context context) {
ConnectivityManager cm = (ConnectivityManager) context.getSystemService(Context.CONNECTIVITY_SERVICE);
NetworkInfo netInfo = cm.getActiveNetworkInfo();
//should check null because in air plan mode it will be null
return (netInfo != null && netInfo.isConnected());
}
便利になります。..おかげDonQuix、私はそれをテストし、あなたが知ってもらおう... – emenpy
接続が再確立されたとき、私はそれを再接続するにはどうすればよいですか? – emenpy