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파일만들고 하니 클릭하면 중지되였습니다. 라고 오류가 뜨면서 안되거든요.. 고수님들 부탁합니다.