마스터Q&A 안드로이드는 안드로이드 개발자들의 질문과 답변을 위한 지식 커뮤니티 사이트입니다. 안드로이드펍에서 운영하고 있습니다. [사용법, 운영진]

안녕하세요 안드로이드 apk 파일에서

0 추천
package co.kr.project.tsapp;

import android.annotation.SuppressLint;
import android.app.Activity;
import android.content.ActivityNotFoundException;
import android.content.Intent;
import android.graphics.Bitmap;
import android.net.Uri;
import android.net.http.SslError;
import android.os.Bundle;
import android.provider.Browser;
import android.util.Log;
import android.view.KeyEvent;
import android.view.View;
import android.webkit.CookieSyncManager;
import android.webkit.SslErrorHandler;
import android.webkit.WebSettings;
import android.webkit.WebView;
import android.webkit.WebViewClient;

public class MainActivity extends Activity {
 private WebView FILEV_Webview;

 @SuppressWarnings("deprecation")
 @SuppressLint({ "SetJavaScriptEnabled", "JavascriptInterface" }) @Override
 protected void onCreate(Bundle savedInstanceState) {
  super.onCreate(savedInstanceState);
  setContentView(R.layout.activity_main);
  startActivity(new Intent(this, IntroActivity.class));


  FILEV_Webview = (WebView)findViewById(R.id.webview_file);

  WebSettings webSettings = FILEV_Webview.getSettings();
  //  webSettings.setUserAgentString(userAgent.toString());
  //갤럭시s2에서 확대/축소기능 활성화
  webSettings.setBuiltInZoomControls(true);

  // WebView 셋팅
  FILEV_Webview.clearCache(true);
  FILEV_Webview.getSettings().setCacheMode(WebSettings.LOAD_NO_CACHE);
  FILEV_Webview.getSettings().setSaveFormData(true); // 브라우저 ID,PW 저장 차단
  FILEV_Webview.getSettings().setSavePassword(false);
  FILEV_Webview.setWebViewClient(new ITGOWebChromeClient());
  //FILEV_Webview.setWebChromeClient(new ITGOWebChromeClient());
  FILEV_Webview.getSettings().setJavaScriptEnabled(true); // 웹뷰의 세팅값을 반환해서 자바스크립트 사용가능하게
  FILEV_Webview.getSettings().setLoadsImagesAutomatically(true);
  FILEV_Webview.setVerticalScrollbarOverlay(true); // 스크롤 영역 웹뷰에 오버레이
  FILEV_Webview.addJavascriptInterface(this, "javautil");
  FILEV_Webview.loadUrl("http://ts1188.kr/");

  //화면 확대할 때  자동개행 하지않음
  FILEV_Webview.getSettings().setUseWideViewPort(true);
  FILEV_Webview.setScrollBarStyle(WebView.SCROLLBARS_OUTSIDE_OVERLAY);
  
  
  //버튼 리스너 설정 
        findViewById(R.id.btn1).setOnClickListener(btnListener);
  findViewById(R.id.btn2).setOnClickListener(btnListener); 
  findViewById(R.id.btn3).setOnClickListener(btnListener); 
  findViewById(R.id.btn4).setOnClickListener(btnListener); 
 }
 //버튼 리스너 구현 부분 
    View.OnClickListener btnListener = new View.OnClickListener() {
  public void onClick(View v) {
   switch (v.getId()) {

   case R.id.btn1:  
    FILEV_Webview.loadUrl("http://ts1188.kr/");
    break;
   case R.id.btn2:   
    FILEV_Webview.loadUrl("http://ts1188.kr/m/travel/list.html?pid=112&cate1=167&cate2=&cate3=");
    break;
   case R.id.btn3:    
    FILEV_Webview.loadUrl("http://ts1188.kr/m/travel/list.html?pid=83&cate1=78&cate2=&cate3=");
    break;
   case R.id.btn4:  
    FILEV_Webview.loadUrl("http://ts1188.kr/m/board/index.html?id=notice");
    break;
    
   }
  }
 };
 public boolean onKeyDown(int keyCode, KeyEvent event) {
  if ((keyCode == KeyEvent.KEYCODE_BACK) && FILEV_Webview.canGoBack()) {
   FILEV_Webview.goBack();
   return true;
  }
  return super.onKeyDown(keyCode, event);
 }
 /*****************
  * @Class WebViewClient
  * 웹뷰 URL 변경시 설정
  *****************/
 class ITGOWebChromeClient extends WebViewClient {
  @Override //SSL 인증
  public void onReceivedSslError (WebView view, SslErrorHandler handler, SslError error) {
   handler.proceed();


  }

  @Override //Tel,MailTo 태그일때 액션뷰 인텐트
  public boolean shouldOverrideUrlLoading(WebView view, String url) {

   if( url.startsWith("http:") || url.startsWith("https:") ) {
    return false;
   }

   else {
    boolean override = true;
    Intent intent = new Intent( Intent.ACTION_VIEW, Uri.parse(url));
    intent.addCategory(Intent.CATEGORY_BROWSABLE);
    intent.putExtra(Browser.EXTRA_APPLICATION_ID, getPackageName());
    if( url.startsWith("sms:")){
     Intent i = new Intent( Intent.ACTION_SENDTO, Uri.parse(url));
     startActivity(i);
     return true;
    } else if( url.startsWith("tel:")){
     Intent i = new Intent( Intent.ACTION_CALL, Uri.parse(url));
     startActivity(i);
     return true;
    } else if( url.startsWith("mailto:")){
     Intent i = new Intent( Intent.ACTION_SENDTO, Uri.parse(url));
     startActivity(i);
     return true;
    }
    try {
     startActivity(intent);
     override = true;
    }
    catch (ActivityNotFoundException e) {
     return override;
    }
   }
   view.loadUrl(url);

   return super.shouldOverrideUrlLoading(view, url);
  }

  @Override //페이지를 호출할때 실행
  public void onPageStarted(WebView view, String url, Bitmap favicon) {
   super.onPageStarted(view, url, favicon);
   Log.v("CHECK", "str_URL = = = = = = = "+url);
   if(url.matches(".*"+"kakaolink.*")  ||url.matches(".*"+"storylink.*"))
   {
    FILEV_Webview.stopLoading();
    FILEV_Webview.goBack();
    Log.v("Stop!! : " ,"Stop!!!!!"+ url);
   }
  }
  @Override
  public void onPageFinished(WebView view, String url){
   CookieSyncManager.getInstance().sync();
   super.onPageFinished(view, url); // page 렌더링이 완료되면 호출됨
   Log.e("몇번 도나","끝");


  }
 }

}

로그인시 아이디 패스워드 넣으면 로그인 클릭하면 아무반응도 없거든요 모바일용에서는 잘되는데 apk 파일 만들어서 하니 안먹히는데 어디부분을 어떻게 수정을 해야 할지 모르겟네요  .그러고 전화걸기도 모바일에서는 잘되는데 apk파일만들고 하니  클릭하면 중지되였습니다. 라고 오류가 뜨면서 안되거든요.. 고수님들 부탁합니다.

kimboy619 (140 포인트) 님이 2014년 5월 27일 질문
kimboy619님이 2014년 5월 27일 수정

답변 달기

· 글에 소스 코드 보기 좋게 넣는 법
· 질문에 대해 추가적인 질문이나 의견이 있으면 답변이 아니라 댓글로 달아주시기 바랍니다.
표시할 이름 (옵션):
개인정보: 당신의 이메일은 이 알림을 보내는데만 사용됩니다.
스팸 차단 검사:
스팸 검사를 다시 받지 않으려면 로그인하거나 혹은 가입 하세요.
...