簡體   English   中英

Android WebView和Internet連接/ Wifi錯誤消息

[英]Android WebView and internet connection/Wifi error message

希望有人能在這里為我提供幫助,因為我真的很困。 我有一些使用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);
}       
}

檢查互聯網連接使用此方法作為

 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" />

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM