Android WebView和互联网连接/ Wifi错误消息

时间:2014-06-01 14:07:42

标签: android webview wifi

希望有人可以帮助我,因为我真的被困住了。我有一些使用WebView的Android应用程序的代码。我正在尝试找出如何添加一些代码来检查是否有连接到互联网或wifi。现在我已经搜索溢出并尝试了许多不同的代码,没有任何东西对我有效。我不是Android开发者,只是想为自己和家人做点什么。 我想在应用程序中显示一个html页面(error.html),当没有连接时,它会出现我的自定义错误消息。

任何帮助都会很棒。

package com.lotto.lra;

import android.app.Activity;
import android.content.Intent;
import android.net.Uri;
import android.os.Bundle;
import android.view.KeyEvent;
import android.webkit.WebView;
import android.webkit.WebViewClient;

public class LottoResultsActivity extends Activity {
private class HelloWebViewClient extends WebViewClient {
@Override
public boolean shouldOverrideUrlLoading(WebView view, String url) {
if (Uri.parse(url).getHost().equals("www.mydomain.com")) {
// This is my web site, so do not override; let my WebView load the page
return false;
}

// Otherwise, the link is not for a page on my site, so launch another Activity that     handles URLs
Intent intent = new Intent(Intent.ACTION_VIEW, Uri.parse(url));
startActivity(intent);
return true;
}
}

@Override
public boolean onKeyDown(int keyCode, KeyEvent event) {
if ((keyCode == KeyEvent.KEYCODE_BACK) && mWebView.canGoBack()) {
mWebView.goBack();
return true;
}
return super.onKeyDown(keyCode, event);
}

private WebView mWebView;
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedstanceState);
setContentView(R.layout.main);

mWebView = (WebView) findViewById(R.id.webview);
mWebView.getSettings().setJavaScriptEnabled(true);
mWebView.loadUrl("http://www.mydomain.com/LRA/");
mWebView.setWebViewClient(new HelloWebViewClient());
mWebView.setScrollBarStyle(WebView.SCROLLBARS_OUTSIDE_OVERLAY);
}       
}

1 个答案:

答案 0 :(得分:0)

检查互联网连接使用此方法

 public boolean isConnectingToInternet(Context mContext) {
            ConnectivityManager connectivity = (ConnectivityManager)mContext
                    .getSystemService(Context.CONNECTIVITY_SERVICE);
            if (connectivity != null) {
                NetworkInfo[] info = connectivity.getAllNetworkInfo();
                if (info != null)
                    for (int i = 0; i < info.length; i++)
                        if (info[i].getState() == NetworkInfo.State.CONNECTED) {
                            return true;
                        }

            }
            return false;
        }

并在您的网络视图中将此方法称为

 if(isConnectingToInternet(LottoResultsActivity.this)){
    mWebView.loadUrl("http://www.mydomain.com/LRA/");
    }else{
Toast.makeText(getApplicationContext(), "No Internet Connection", 
   Toast.LENGTH_LONG).show();
}

并且忘记在清单文件

中添加以下权限
 <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" />