gpt4 book ai didi

android - 如何检测 Webview 中何时丢失/中断连接?

转载 作者:行者123 更新时间:2023-11-30 01:21:44 25 4
gpt4 key购买 nike

我正在实现一个 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());
}

关于android - 如何检测 Webview 中何时丢失/中断连接?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36991615/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com