检查网站是否可以访问

时间:2017-11-04 21:23:21

标签: android webview connection offline

如果没有互联网连接,我的Android Studio App必须显示离线网站。如果互联网连接有效,请显示在线网站。

现在,如果现在正在显示在线网站的互联网连接处于活动状态,我会查找该功能。如果我现在停用互联网连接,它必须再次显示离线站点,而不是标准"错误站点不可用" - 错误页面。 如何解决这个问题?

WebView wb;

@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_main);

    wb = (WebView) findViewById(R.id.mywb);
    wb.setWebViewClient(new MyBrowser());

    if ( !isNetworkAvailable() ) { // loading offline
        wb.loadUrl("file:///android_asset/index.html");

    }else { // loading online
        wb.loadUrl("http://www.google.com");
    }


}

private boolean isNetworkAvailable() {
    ConnectivityManager connectivityManager = (ConnectivityManager) getSystemService( CONNECTIVITY_SERVICE );
    NetworkInfo activeNetworkInfo = connectivityManager.getActiveNetworkInfo();
    return activeNetworkInfo != null && activeNetworkInfo.isConnected();
}

private class MyBrowser extends WebViewClient {
    @Override
    public boolean shouldOverrideUrlLoading(WebView view, String url) {
        view.loadUrl(url);
        return true;
    }

1 个答案:

答案 0 :(得分:0)

你几乎拥有它: 只需在加载新网站时添加WebViewClient中的区别。

private class MyBrowser extends WebViewClient {
    @Override
    public boolean shouldOverrideUrlLoading(WebView view, String url) {
      if ( !isNetworkAvailable() ) { // loading offline
          view.loadUrl("file:///android_asset/index.html");
      }
      else { // loading online
          view.loadUrl(url);
      }
      return true;
     }
  }