【问题标题】:Check if Website is reachable检查网站是否可访问
【发布时间】:2017-11-04 21:23:20
【问题描述】:

如果没有互联网连接,我的 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;
    }

【问题讨论】:

    标签: android webview connection offline


    【解决方案1】:

    你几乎拥有它: 只需在加载新网站时在 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;
         }
      }
    

    【讨论】:

    • 不幸的是,如果我单击 WebView 中的提交按钮,则不起作用。它显示标准错误页面
    • 看起来该应用程序通常在 webviews 中使用
      whitch 时遇到一些问题...每次当我单击表单字段中的按钮时,它都会显示标准错误页面..
    • 你启用了javascript吗?如果表单打开另一个网站,它将通过 webview 客户端
    • 是的,javascript 已启用,有问题吗?该表单不会打开另一个网站,它只是从同一个服务器地址启动另一个数据......
    • 好吧,经过一段时间的测试,我可以说问题只有在
      方法是“post”时才存在。如果
      方法是“get”它没有问题。但我必须对表格使用“发布”功能。有什么办法可以解决这个问题吗?
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2017-07-30
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-02-04
    • 2010-12-12
    相关资源
    最近更新 更多