@Override
  public void onPageFinished(WebView view, String url) {
    EBrowserView target = (EBrowserView) view;
    if (url.startsWith("http")) {
      EBrowserWindow bWindow = target.getBrowserWindow();
      WWidgetData wgt = bWindow.getWidget();
      if (1 == wgt.m_webapp) {
        bWindow.hiddenProgress();
      }
    }
    String oUrl = view.getOriginalUrl();
    if (!mReferenceUrl.equals(url) || target.beDestroy() || !url.equals(oUrl)) {
      return;
    }
    ESystemInfo info = ESystemInfo.getIntence();

    int versionA = Build.VERSION.SDK_INT;

    if (!target.isWebApp()) { // 4.3及4.3以下手机
      if (!info.mScaled) {
        float nowScale = 1.0f;

        if (versionA <= 18) {
          nowScale = target.getScale();
        }

        info.mDefaultFontSize = (int) (info.mDefaultFontSize / nowScale);
        info.mScaled = true;
      }

      target.setDefaultFontSize(info.mDefaultFontSize);
    }

    if (!info.mFinished) {
      ((EBrowserActivity) target.getContext()).setContentViewVisible();
    }

    info.mFinished = true;
    target.loadUrl(EUExScript.F_UEX_SCRIPT);
    target.onPageFinished(target, url);

    EBrowserWindow win = target.getBrowserWindow();
    WWidgetData wgt = win.getWidget();

    if (wgt.m_appdebug == 1) {
      String debugUrlString =
          "http://" + wgt.m_logServerIp + ":30060/target/target-script-min.js#anonymous";
      String weinreString =
          "javascript:var x = document.createElement(\"SCRIPT\");x.setAttribute('src',\""
              + debugUrlString
              + "\""
              + ");document.body.appendChild(x);";
      target.loadUrl(weinreString);
    }

    CookieSyncManager.getInstance().sync();
  }
  @Override
  public void onClick(View v) {
    switch (v.getId()) {
      case R.id.bGo:
        String theWebSite = url.getText().toString();
        ourBrow.loadUrl(theWebSite);
        // hiding the Keyboard after using an EditText
        InputMethodManager imm =
            (InputMethodManager) getSystemService(Context.INPUT_METHOD_SERVICE);
        imm.hideSoftInputFromWindow(url.getWindowToken(), 0);
        break;

      case R.id.bBack:
        if (ourBrow.canGoBack()) {
          ourBrow.goBack();
          url.setText(ourBrow.getOriginalUrl());
        }
        break;

      case R.id.bRefresh:
        ourBrow.reload();
        break;

      case R.id.bForward:
        if (ourBrow.canGoForward()) {
          ourBrow.goForward();
          url.setText(ourBrow.getUrl());
        }
        break;

      case R.id.bHistory:
        ourBrow.clearHistory();
        url.setText("");
        break;
    }
  }
 @SuppressLint("NewApi")
 @Override
 public boolean shouldOverrideUrlLoading(WebView view, String url) {
   Activity activity = (Activity) view.getContext();
   if (url.startsWith("tel:")) {
     try {
       Intent intent = new Intent(Intent.ACTION_DIAL);
       intent.setData(Uri.parse(url));
       activity.startActivity(intent);
     } catch (Exception e) {
       e.printStackTrace();
     }
     return true;
   } else if (url.startsWith("geo:")) {
     try {
       Intent intent = new Intent(Intent.ACTION_VIEW);
       intent.setData(Uri.parse(url));
       activity.startActivity(intent);
     } catch (Exception e) {
       e.printStackTrace();
     }
     return true;
   } else if (url.startsWith("mailto:")) {
     try {
       Intent intent = new Intent(Intent.ACTION_VIEW);
       intent.setData(Uri.parse(url));
       activity.startActivity(intent);
     } catch (Exception e) {
       e.printStackTrace();
     }
     return true;
   } else if (url.startsWith("sms:")) {
     try {
       Intent intent = new Intent(Intent.ACTION_VIEW);
       String address = null;
       int parmIndex = url.indexOf('?');
       if (parmIndex == -1) {
         address = url.substring(4);
       } else {
         address = url.substring(4, parmIndex);
         Uri uri = Uri.parse(url);
         String query = uri.getQuery();
         if ((query != null) && (query.startsWith("body="))) {
           intent.putExtra("sms_body", query.substring(5));
         }
       }
       intent.setData(Uri.parse("sms:" + address));
       intent.putExtra("address", address);
       intent.setType("vnd.android-dir/mms-sms");
       activity.startActivity(intent);
     } catch (Exception e) {
       e.printStackTrace();
     }
     return true;
   }
   boolean isUrl = url.startsWith("file") || url.startsWith("http");
   if (!isUrl) {
     return true;
   }
   EBrowserView target = (EBrowserView) view;
   if (target.isObfuscation()) {
     target.updateObfuscationHistroy(url, EBrowserHistory.UPDATE_STEP_ADD, false);
   }
   if (target.shouldOpenInSystem()) {
     Intent intent = new Intent(Intent.ACTION_VIEW);
     intent.setData(Uri.parse(url));
     activity.startActivity(intent);
     return true;
   }
   int sdkVersion = Build.VERSION.SDK_INT;
   if (sdkVersion >= 11) {
     if (url.startsWith("file")) {
       int index = url.indexOf("?");
       if (index > 0) {
         mParms = url.substring(index + 1);
         url = url.substring(0, index);
       }
     }
   }
   String cUrl = view.getOriginalUrl();
   if (null != cUrl && url.startsWith("http") && sdkVersion >= 8) {
     Map<String, String> headers = new HashMap<String, String>();
     headers.put("Referer", cUrl);
     view.loadUrl(url, headers);
   } else {
     view.loadUrl(url);
   }
   return true;
 }