http://shinehand.egloos.com/456203
웹에서 팝업을 띄우는 것을 Android WebView를 통해서 보여지게 만들 것이다
간단하게 알림창 같은것을 띄우면 되는데 처음에는 어떻게 처리를 해야 하는지 몰라서 고생했다
하지만 매우 쉽게 해결 되면서 허탈하게 만든 부분 이랄까....
해결은 WebChromeClient 를 통해서 했다
//우선 사용하는 웹뷰를 id를 통해서 가지고 온다
//물론 웹뷰는 xml로 미리 생성을 한다.
WebView testWebView = (WebView)findViewById(R.id.testWeb);
// 구글에서 제공하는 크롬클라이언트를 생성한다.
WebChromeClient testChromeClient = new WebChromeClient();
//생성한 크롬 클라이언트를 웹뷰에 셋한다
testWebView .setWebChromeClient( testChromeClient );
이렇게 별거 없이 크롬 클라이언트를 생성해서 넣는 것 만으로 팝업이 된다
문제는 팝업이 되기는 하나 팝업에 IP가 찍혀 나오는 문제가 있다는 것이다
그래서 크롬 클라이언트를 상속받아서 클래스를 생성한다
그리고 onJsAlert, onJsConfirm 를 재 설정하여 원하는 팝업이 나올수 있게 만들어 준다
public class HelloWebChromeClient extends WebChromeClient {
@Override
public boolean onCreateWindow(WebView view, boolean dialog,
boolean userGesture, Message resultMsg) {
// TODO Auto-generated method stub
return super.onCreateWindow(view, dialog, userGesture, resultMsg);
}
@Override
public boolean onJsAlert(WebView view, String url, String message, final JsResult result) {
// TODO Auto-generated method stub
//return super.onJsAlert(view, url, message, 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;
}
@Override
public boolean onJsConfirm(WebView view, String url, String message,
final JsResult result) {
// TODO Auto-generated method stub
//return super.onJsConfirm(view, url, message, result);
new AlertDialog.Builder(view.getContext())
.setTitle("알림")
.setMessage(message)
.setPositiveButton("네",
new AlertDialog.OnClickListener(){
public void onClick(DialogInterface dialog, int which) {
result.confirm();
}
})
.setNegativeButton("아니오",
new AlertDialog.OnClickListener(){
public void onClick(DialogInterface dialog, int which) {
result.cancel();
}
})
.setCancelable(false)
.create()
.show();
return true;
}
}
이렇게 하면 Title에 알림이 뜨고 밑에 메시지가 뜨게 될것이다
두개의 함수가 정확이 어떻게 사용되는지 알고 싶으시다면 구글링 으로 고고고 ㅋ
'차근차근 > Android' 카테고리의 다른 글
파일 전송 예제 소스 (0) | 2014.08.28 |
---|---|
안드로이드에서 post로 서버에 데이터 전송하기 (0) | 2014.08.28 |
Upload an Image to a PHP Scrip( phonegap 카메라로 사진 찍어서 올리기) (0) | 2014.08.21 |
안드로이드 플랫폼 HttpPost 요청 처리 구현 (XmlPullParser) (0) | 2014.08.21 |
안드로이드 PHP 연동예제 (0) | 2014.08.21 |