자바스크립트를 따로 지정해주지 않으면 실행되지 않는다는 걸 알고
급하게 찾은 ....
- // 웹뷰를 만들고
- 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;
- }
- }
<출처 : http://shinehand.egloos.com/456203 [shinehand님 블로그]>