Ejemplo n.º 1
0
  private void webViewListener() {
    webview.setWebViewClient(
        new WebViewClient() {
          // 加载失败
          @Override
          public void onReceivedError(
              WebView view, int errorCode, String description, String failingUrl) {

            LogUtil.i(
                TAG, "加载失败===" + errorCode + "---" + description + "---" + failingUrl + "---");

            current_url = failingUrl;
            webview.clearView();
            if (failingUrl.contains("#")) {
              String[] temp;
              temp = failingUrl.split("#");
              webview.loadUrl(temp[0]);
              try {
                Thread.sleep(400);
              } catch (InterruptedException e) {
                e.printStackTrace();
              }
              webview.loadUrl(failingUrl);
            } else {
              webview.loadUrl("file:///android_asset/error.html#" + failingUrl);
            }

            ToastUtil.showMessage("页面加载失败,请点击重新加载");

            // super.onReceivedError(view, errorCode, description,
            // failingUrl);

          }

          @Override
          public boolean shouldOverrideUrlLoading(WebView view, String url) {
            /*
             * Toast.makeText(getApplicationContext(),
             * "WebViewClient.shouldOverrideUrlLoading",
             * Toast.LENGTH_SHORT);
             */
            LogUtil.i(TAG, "拦截url---shouldOverrideUrlLoading-->" + url);
            if (url.startsWith("tel:")) {
              Intent intent = new Intent(Intent.ACTION_DIAL, Uri.parse(url));
              startActivity(intent);
            } else {
              HashMap<String, String> hashmap = new HashMap<String, String>();
              if (null != SharedPrefsUtil.getValue(Constants.TOKEN, null)) {
                hashmap.put("token", SharedPrefsUtil.getValue(Constants.TOKEN, null));
              }
              webview.loadUrl(url, hashmap);
            }

            return true;
          }

          @Override
          public void onLoadResource(WebView view, String url) {
            // TODO Auto-generated method stub
            super.onLoadResource(view, url);
          }

          @Override
          public void onPageStarted(WebView view, String url, Bitmap favicon) {
            isPageLoaded = false;
            LogUtil.i(TAG, "拦截url---onPageStarted-->" + url);
            HashMap<String, String> hashmap = new HashMap<String, String>();
            if (null != SharedPrefsUtil.getValue(Constants.TOKEN, null)) {
              hashmap.put("token", SharedPrefsUtil.getValue(Constants.TOKEN, null));
            }
            if (url.toLowerCase().contains("/login")) {
              Intent i11 = new Intent();
              i11.setClass(WebViewActivity.this, LoginActivity.class);
              startActivity(i11);
            }
            super.onPageStarted(view, url, favicon);
          }

          @Override
          public void onPageFinished(WebView view, String url) {
            super.onPageFinished(view, url);
            isPageLoaded = true;
            LogUtil.i(TAG, "页面加载完后==onPageFinished==" + url);

            myProgressDialog2.dismiss();
          }
        });
  }