package com.tarks.favorite; import android.app.AlertDialog; import android.content.Intent; import android.net.Uri; import android.os.Bundle; import android.view.KeyEvent; import android.view.View; import android.view.inputmethod.InputMethodManager; import android.webkit.CookieSyncManager; import android.webkit.ValueCallback; import android.webkit.WebChromeClient; import android.webkit.WebView; import android.webkit.WebViewClient; import android.widget.EditText; import android.widget.ProgressBar; import com.actionbarsherlock.app.SherlockActivity; import com.actionbarsherlock.app.ActionBar; import com.actionbarsherlock.view.Menu; import com.actionbarsherlock.view.MenuItem; import com.actionbarsherlock.view.MenuInflater; import com.tarks.favorite.global.Global; public final class webview extends SherlockActivity { private WebView browser; private ProgressBar progressBar; //Check Error private boolean firsttime_error = true; // 엽로드정의 private static final int FILECHOOSER_RESULTCODE = 1; private ValueCallback<Uri> uploadMessage = null; // 업로로로드드드드당담 @Override protected void onActivityResult(int requestCode, int resultCode, Intent data) { super.onActivityResult(requestCode, resultCode, data); if (requestCode == FILECHOOSER_RESULTCODE && uploadMessage != null) { Uri result = data == null || resultCode != RESULT_OK ? null : data .getData(); uploadMessage.onReceiveValue(result); uploadMessage = null; } } @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.webview); //actionbar back // getSupportActionBar().setDisplayHomeAsUpEnabled(true); Intent intent = getIntent(); // 인텐트 받아오고 String url = intent.getStringExtra("url"); // 인텐트로 부터 데이터 가져오고 browser = (WebView) findViewById(R.id.webView1); // habilitamos javascript y el zoom browser.getSettings().setJavaScriptEnabled(true); // 진저스크롤 browser.setVerticalScrollbarOverlay(true); browser.loadUrl(url); browser.setWebViewClient(new WebViewClient() { // evita que los enlaces se abran fuera nuestra app en el navegador // de android @Override public boolean shouldOverrideUrlLoading(WebView view, String url) { if (url.startsWith("about:blank")) { return false; } if (url.startsWith("http://tarks.net")) { browser.loadUrl(url); return false; } else { // 메 if (url.matches("(?i).*htm.*")) { browser.loadUrl(url); return true; } else { Uri uri = Uri.parse(url); Intent it = new Intent(Intent.ACTION_VIEW, uri); startActivity(it); } // 분리싹 } return true; } // gestión de errores private void loadUrl(String url) { // TODO Auto-generated method stub } @Override public void onReceivedError(WebView view, int errorCode, String description, String failingUrl) { if(firsttime_error){ firsttime_error = false; browser.loadUrl("https://sites.google.com/site/tarksservicesstatus/"); }else{ browser.loadUrl("about:blank"); Global.Infoalert(webview.this, getString(R.string.networkerror), getString(R.string.networkerrord), getString(R.string.yes)); } // AlertDialog.Builder builder = new // AlertDialog.Builder(webview.this); // builder.setMessage(getString(R.string.networkerrord)).setPositiveButton(getString(R.string.yes), // null).setTitle(getString(R.string.networkerror)); // builder.show(); } }); progressBar = (ProgressBar) findViewById(R.id.progressBar1); browser.setWebChromeClient(new WebChromeClient() { @Override public void onProgressChanged(WebView view, int progress) { progressBar.setProgress(0); progressBar.setVisibility(View.VISIBLE); webview.this.setProgress(progress * 1000); progressBar.incrementProgressBy(progress); if (progress == 100) { progressBar.setVisibility(View.GONE); } } // ICS 에서도 동작하기 위해서는 아래메소드도 넣어줘야함. public void openFileChooser(ValueCallback<Uri> uploadFile, String acceptType) { openFileChooser(uploadFile); } public void openFileChooser(ValueCallback<Uri> uploadMsg, String acceptType, String capture) { openFileChooser(uploadMsg); } public void openFileChooser(ValueCallback<Uri> uploadMsg) { uploadMessage = uploadMsg; Intent i = new Intent(Intent.ACTION_GET_CONTENT); i.addCategory(Intent.CATEGORY_OPENABLE); i.setType("*/*"); startActivityForResult(Intent.createChooser(i, "File Chooser"), FILECHOOSER_RESULTCODE); } // 웹뷰랑께? @Override public void onReceivedTitle(WebView view, String title) { webview.this.setTitle(webview.this.browser.getTitle()); } }); } @Override public boolean onKeyDown(int keyCode, KeyEvent event) { // if ((keyCode == KeyEvent.KEYCODE_BACK) && browser.canGoBack()) { // // browser.goBack(); // // return true; // // } return super.onKeyDown(keyCode, event); } // //////////BOTONES DE NAVEGACI?N ///////// // oculta el teclado al pulsar el botón // he observado que si se pulsa "Ir" sin modificarse la url no se // ejecuta el método onPageStarted, así que nos aseguramos // que siempre que se cargue una url, aunque sea la que se está // mostrando, se active el botón "detener" private static boolean canGoBack() { // TODO Auto-generated method stub return false; } public void anterior(View view) { browser.goBack(); } public void siguiente(View view) { browser.goForward(); } public void detener(View view) { browser.stopLoading(); } }