일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | ||||||
2 | 3 | 4 | 5 | 6 | 7 | 8 |
9 | 10 | 11 | 12 | 13 | 14 | 15 |
16 | 17 | 18 | 19 | 20 | 21 | 22 |
23 | 24 | 25 | 26 | 27 | 28 |
- 홈페이지제작
- 사이트제작
- 플러그인
- 프로그래머
- 쇼핑몰구축
- 고도몰
- jQuery Plugin
- 제이쿼리
- 워크식스
- JQuery
- 웹디자이너
- 웹개발자
- work6.kr
- CSS
- 홈페이지구축
- 홈페이지
- 쇼핑몰
- 포트폴리오
- 웹퍼블리셔
- PHP
- 튜닝
- 웹퍼블리싱
- plugin
- 개발자
- 커스터마이징
- 안드로이드
- 웹디자인
- 3D프린터
- 쇼핑몰제작
- 웹에이전시
- Today
- Total
그냥 개발자 블로그
웹뷰에서 자바스크립트 동작 처리하기 - 안드로이드 모바일웹으로 하이브리드앱 만들기 6 본문
웹뷰까지 생성하고 테스트를 하다보면 이상한 점을 발견할 수 있습니다.
바로 자바스크립트 alert과 confirm이 동작하지 않는것 입니다.
여기서는 일부 자바스크립트 동작을 원할하게 할수 있도록 하는 개발을 소개 합니다.
1. MainActivity 자바 클래스를 아래와 같이 수정해줍니다.
public class MainActivity extends AppCompatActivity {
WebView mWebView;
TextView errorVeiw;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
FirebaseMessaging.getInstance().subscribeToTopic("notice");
errorVeiw = (TextView) findViewById(R.id.net_error_view);
mWebView = (WebView) findViewById(R.id.activity_main_webview);
WebSettings webSettings = mWebView.getSettings();
webSettings.setJavaScriptEnabled(true);
mWebView.setWebViewClient(new WebViewClient() {
@Override
public boolean shouldOverrideUrlLoading(WebView view, String url) {
view.loadUrl(url);
return true;
}
//네트워크연결에러
@Override
public void onReceivedError(WebView view, int errorCode,String description, String failingUrl) {
switch(errorCode) {
case ERROR_AUTHENTICATION: break; // 서버에서 사용자 인증 실패
case ERROR_BAD_URL: break; // 잘못된 URL
case ERROR_CONNECT: break; // 서버로 연결 실패
case ERROR_FAILED_SSL_HANDSHAKE: break; // SSL handshake 수행 실패
case ERROR_FILE: break; // 일반 파일 오류
case ERROR_FILE_NOT_FOUND: break; // 파일을 찾을 수 없습니다
case ERROR_HOST_LOOKUP: break; // 서버 또는 프록시 호스트 이름 조회 실패
case ERROR_IO: break; // 서버에서 읽거나 서버로 쓰기 실패
case ERROR_PROXY_AUTHENTICATION: break; // 프록시에서 사용자 인증 실패
case ERROR_REDIRECT_LOOP: break; // 너무 많은 리디렉션
case ERROR_TIMEOUT: break; // 연결 시간 초과
case ERROR_TOO_MANY_REQUESTS: break; // 페이지 로드중 너무 많은 요청 발생
case ERROR_UNKNOWN: break; // 일반 오류
case ERROR_UNSUPPORTED_AUTH_SCHEME: break; // 지원되지 않는 인증 체계
case ERROR_UNSUPPORTED_SCHEME: break; // URI가 지원되지 않는 방식
}
super.onReceivedError(view, errorCode, description, failingUrl);
mWebView.setVisibility(View.GONE);
errorVeiw.setVisibility(View.VISIBLE);
}
});
mWebView.setWebChromeClient(new WebChromeClient() {
//alert 처리
@Override
public boolean onJsAlert(WebView view, String url, String message, final JsResult result) {
new AlertDialog.Builder(view.getContext())
.setTitle("알림")
.setMessage(message)
.setPositiveButton(android.R.string.ok,
new AlertDialog.OnClickListener(){
public void onClick(DialogInterface dialog, int which) {
result.confirm();
}
})
.setCancelable(false)
.create()
.show();
return true;
}
//confirm 처리
@Override
public boolean onJsConfirm(WebView view, String url, String message,
final JsResult result) {
new AlertDialog.Builder(view.getContext())
.setTitle("알림")
.setMessage(message)
.setPositiveButton("Yes",
new AlertDialog.OnClickListener(){
public void onClick(DialogInterface dialog, int which) {
result.confirm();
}
})
.setNegativeButton("No",
new AlertDialog.OnClickListener(){
public void onClick(DialogInterface dialog, int which) {
result.cancel();
}
})
.setCancelable(false)
.create()
.show();
return true;
}
});
mWebView.loadUrl("http://m.naver.com");
}
}
[목차]
1. 프로젝트 생성 하기 - 안드로이드 모바일웹으로 하이브리드앱 만들기 1
2. 푸시 사용 준비하기 (FCM) - 안드로이드 모바일웹으로 하이브리드앱 만들기 2
3. 푸시 기능 만들기 (FCM) - 안드로이드 모바일웹으로 하이브리드앱 만들기 3
4. 푸시 테스트 하기 - 안드로이드 모바일웹으로 하이브리드앱 만들기 4
5. 웹뷰추가하기 - 안드로이드 모바일웹으로 하이브리드앱 만들기 5
6. 웹뷰에서 자바스크립트 동작 처리하기 - 안드로이드 모바일웹으로 하이브리드앱 만들기 6
7. 뒤로 버튼 눌렀을때 동작 처리하기 - 안드로이드 모바일웹으로 하이브리드앱 만들기 7
8. 인트로(스플레시) 만들기 - 안드로이드 모바일웹으로 하이브리드앱 만들기 8
9. 아이콘 설정하기 - 안드로이드 모바일웹으로 하이브리드앱 만들기 9
10. 테스트용 APK 추출하기 - 안드로이드 모바일웹으로 하이브리드앱 만들기 10
copyright (c) 2017 워크식스
'프로그래밍팁 > android' 카테고리의 다른 글
인트로(스플레시) 만들기 - 안드로이드 모바일웹으로 하이브리드앱 만들기 8 (0) | 2017.06.12 |
---|---|
뒤로 버튼 눌렀을때 동작 처리하기 - 안드로이드 모바일웹으로 하이브리드앱 만들기 7 (0) | 2017.06.12 |
웹뷰추가하기 - 안드로이드 모바일웹으로 하이브리드앱 만들기 5 (0) | 2017.06.12 |
푸시 테스트 하기 - 안드로이드 모바일웹으로 하이브리드앱 만들기 4 (0) | 2017.06.11 |
푸시 기능 만들기 (FCM) - 안드로이드 모바일웹으로 하이브리드앱 만들기 3 (2) | 2017.06.11 |