# Webview를 띄우는 기초와 그 웹뷰 디폴트 설정을 해주는 문서입니다.
먼저 mWebview = findViewById(R.id.webview); 로 웹뷰를 선언합니다.
이후 코드를 작성 후 설명 하겠습니다.
* Webview Settings
WebSettings webSettings = mWebview.getSettings();
webSettings.setJavaScriptEnabled(true);
mWebview.setWebChromeClient(new WebChromeClient() {
@Override
public boolean onJsAlert(WebView view, String url, String message, final JsResult result) {
new AlertDialog.Builder(view.getContext())
.setTitle("Alert")
.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;
}
@Override
public boolean onJsConfirm(WebView view, String url, String message,
final JsResult result) {
new AlertDialog.Builder(view.getContext())
.setTitle("Confirm")
.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://wwwn.anver.com");
* KeyDown
@Override
public boolean onKeyDown(int keyCode, KeyEvent event){
if(keyCode == KeyEvent.KEYCODE_BACK){
if(mWebview.canGoBack()){
mWebview.goBack();
return false;
}
}
return super.onKeyDown(keyCode,event);
}
따라 작성하시면 되는데 위에 웹뷰 세팅이 왜 필요하냐하면
맨처음 웹뷰를 띄우기만 하는 디폴트에는 크롬 클라이언트를 사용하지도 않고,
자바스크립트가 허용되지도 않으며, 아래 세가지 항목의 기능이 작동하지 않아 세팅을 해주었습니다.
1) 화면을 가로/세로 모드로 변환하면 다시 페이지를 로딩함
2) 안드로이드의 Back 버튼을 누르면 바로 앱이 종료됨 (이전 페이지가 있으면 그 곳으로 이동하는 것이 일반적인 기대)
3) Alert이나 Confirm과 같은 Popup이 전혀 보이지 않음
# http또한 접속이 가능하게 하려면 매니페스트 파일에 application 부분에 이 코드를 추가하시면 됩니다.
android:usesCleartextTraffic="true"
# 맨 위 소스에서 웹뷰를 앱 외부가 아닌 내부에서 실행하고 싶으시면 이 코드를 추가하시면 됩니다.
mWebview.setWebViewClient(new WebViewClient(){
@Override
public boolean shouldOverrideUrlLoading(WebView view, String url){
view.loadUrl(url);
return true;
}
});
참고 출처: http://zeany.net/5 [소소한 IT 이야기]
'모바일 > 안드로이드' 카테고리의 다른 글
안드로이드 + KAKAO SDK 로그인 콜백관련 Tip (0) | 2020.02.19 |
---|---|
안드로이드 + KAKAO SDK 닉네임 변경 및 재가입 방지 (0) | 2020.02.19 |
안드로이드 네이티브와 카카오SDK 연동 (0) | 2020.02.18 |
간단한 페이드 인/아웃 기능 (0) | 2020.02.18 |
안드로이드 타이머 (0) | 2020.02.18 |