互联网关闭时Webview失败

问题描述 投票:1回答:2

我有一个基于Web的应用程序,该应用程序启动时会在其中加载网址。我尝试在

时处理问题

加载资源时,WiFi的互联网关闭(资源以异步格式加载)。

我正在使用onReceivedError(WebView view, int errorCode, String description, String failingUrl)WebViewClient检查网址失败。我也尝试过onReceivedError(WebView view, WebResourceRequest request, WebResourceError error)

但是在资源加载期间关闭WiFi互联网时,我没有收到任何失败的回调。

android webview
2个回答
0
投票

尝试一下:

您可以放置​​网络检查的条件,然后根据需要构建逻辑

WebView mWebView;
NetworkInfo networkInfoWifi = (ConnectivityManager) getSystemService(CONNECTIVITY_SERVICE).getNetworkInfo(ConnectivityManager.TYPE_WIFI);

mWebView.setWebViewClient(mWebClient);

WebViewClient mWebClient = new WebViewClient(){

    @Override
    public boolean shouldOverrideUrlLoading(WebView  view, String  url){
        return true;
    }

    @Override
    public void onLoadResource(WebView  view, String  url){
        if (networkInfoWifi.isConnected()) {
            //Take action
        }
    }

}

希望这会起作用!


0
投票

为网络更改创建接收器,您可以检测到网络已关闭或打开,如下所示,您可以将本地广播发送到您的活动-

public class NetworkChangeReceiver extends BroadcastReceiver {
@Override
public void onReceive(final Context context, final Intent intent) {

    int status = NetworkUtil.getConnectivityStatusString(context);
    Log.e("network change reciever", "reciever");
    if ("android.net.conn.CONNECTIVITY_CHANGE".equals(intent.getAction())) {
        if (status == NetworkUtil.NETWORK_STATUS_NOT_CONNECTED) {
            Log.e("network change reciever", "Not connected - updatevariable");
        } else {
            Log.e("network change reciever", "connected - update variable");
        }
   }
    }
}

menifest.xml文件的下面添加行

 <uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />
 <uses-permission android:name="android.permission.INTERNET" />
 <receiver
        android:name="NetworkChangeReceiver"
        android:label="NetworkChangeReceiver" >
        <intent-filter>
            <action android:name="android.net.conn.CONNECTIVITY_CHANGE" />
            <action android:name="android.net.wifi.WIFI_STATE_CHANGED" />
        </intent-filter>
    </receiver>
© www.soinside.com 2019 - 2024. All rights reserved.