Android 检查网站是否可访问

Android 检查网站是否可访问,android,webview,connection,offline,Android,Webview,Connection,Offline,如果没有互联网连接,我的Android Studio应用程序必须显示离线站点。如果互联网连接处于活动状态,则显示在线网站 现在,如果Internet连接处于活动状态,我将查找该功能,在线站点现在正在显示。如果我现在停用Internet连接,它必须再次显示脱机站点,而不是标准的“错误站点不可用”-错误页面。 如何解决这个问题 WebView wb; @Override protected void onCreate(Bundle savedInstanceState) { super.o

如果没有互联网连接,我的Android Studio应用程序必须显示离线站点。如果互联网连接处于活动状态,则显示在线网站

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

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;
    }
你几乎做到了: 加载新网站时,只需在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;
     }
  }
你几乎做到了: 加载新网站时,只需在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;
     }
  }

不幸的是,如果我在“网络视图”中点击“提交”按钮,则无法正常工作。它显示了标准错误页面,看起来应用程序在Web视图中使用的whitch通常有一些问题。。。每次我单击表单字段中的按钮时,它都会显示标准错误页面。您启用了javascript吗?如果表单打开另一个网站,它将通过webview客户端是的,启用了javascript是否有问题?表单不会打开另一个网站,它只是从同一个服务器地址启动另一个数据…好吧,经过一段时间的测试,我可以说问题只存在于方法为“post”的情况下。如果方法是“get”,则没有问题。但是我必须对表单使用“Post”函数。有什么办法可以解决这个问题吗?不幸的是,如果我在WebView中点击Submit(提交)按钮,它就不起作用了。它显示了标准错误页面,看起来应用程序在Web视图中使用的whitch通常有一些问题。。。每次我单击表单字段中的按钮时,它都会显示标准错误页面。您启用了javascript吗?如果表单打开另一个网站,它将通过webview客户端是的,启用了javascript是否有问题?表单不会打开另一个网站,它只是从同一个服务器地址启动另一个数据…好吧,经过一段时间的测试,我可以说问题只存在于方法为“post”的情况下。如果方法是“get”,则没有问题。但是我必须对表单使用“Post”函数。有办法解决这个问题吗?