1)
2)
3)
이상태의 앱에서 m.naver.com 을 조작하면
내장 브라우저로 넘어가버린다.
따라서 클릭에대한 이벤트 처리를 해줘야한다.
4)
5)백버튼에 대한 이벤트 추가
//백버튼을 눌렀을 때 history 정보를 사용하여 이전 화면으로 이동하고 더이상 화면이 없으면 앱 종료
@Override
public boolean onKeyDown(int keyCode, KeyEvent event) {
if(keyCode == KeyEvent.KEYCODE_BACK && webView.canGoBack()){
//이전 화면으로 이동
webView.goBack();
}else if(keyCode == KeyEvent.KEYCODE_BACK && !webView.canGoBack()){
//이전 페이지가 없기 때문에 앱종료 기능 수행
new AlertDialog.Builder(this)
.setTitle("종료확인")
.setMessage("종료하시겠습니까?")
.setPositiveButton("예", new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialogInterface, int i) {
//앱 종료
finish();
}
})
.setNegativeButton("아니오", new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialogInterface, int i) {
}
})
.show();
}
return true;
}
6)자바스크립트 사용
private class MyWebChromeClient extends WebChromeClient{
@Override
public boolean onJsAlert(WebView view, String url, String message, JsResult result) {
new AlertDialog.Builder(MainActivity.this)
.setTitle("안내")
.setMessage(message)
.setCancelable(false)
.setNeutralButton("닫기", new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialogInterface, int i) {
}
})
.show();
result.confirm();
return true;
}
}
onCreate 메서드에 아래 코드 추가
//자바스크립트 alert() 호출시 이벤트 연결
webView.setWebChromeClient(new MyWebChromeClient());
Call requires API level 21 (current min is 16)에러
이러한 에러 발생시
반응형
'IT > Android Studio' 카테고리의 다른 글
s35WebViewDemo01 (0) | 2020.07.07 |
---|---|
s34ViewFilpperTouchDemo 터치 슬라이드 애니메이션으로 다음사진 보기 (0) | 2020.07.06 |
s34ViewFilpperTouchDemo 터치 슬라이드 애니메이션으로 다음사진 보기 (0) | 2020.07.03 |
s33ViewFilpperDemo 갤러리 다음사진 보기 (0) | 2020.07.03 |
Android Studio s26ListViewDemo04 (삭제 기능 ) (0) | 2020.07.02 |