@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; }