안녕하세요..
웹뷰를 사용하여 앱하고 페이지를 연동 시켰습니다.
웹 페이지상에서 자바스크립트 alert(); 창을 이용하여 메세지를 주도록 구현했는데요
처음 로그인 페이지에서
타이틀. 메시지가 정확하게 나오나...
페이지 이동후 앱 Dialog 타이틀바에 홈페이지 주소가 나옵니다...
소스는 아래와 같이 구현했는데요
분명 타이틀 바에 setTitle을 먹혔는데도 주소 값이 나오네요..
webview.setWebChromeClient(new WebChromeClient() {
@Override
public boolean onJsAlert(WebView view, String url, String message, final android.webkit.JsResult result)
{
new AlertDialog.Builder(myApp)
.setTitle("서울시의회")
.setMessage(message)
.setPositiveButton(android.R.string.ok,
new AlertDialog.OnClickListener()
{
public void onClick(DialogInterface dialog, int which)
{
result.confirm();
}
})
.setCancelable(true)
.create()
.show();
return true;
};
});
cancel이 있는 것 일경우는 onJsConfirm 으로 사용을 해야하고
그래서 저는 급히 하느냐고 일단 message로 cancel이 있나 없나 구분 해놨는데요..
저렇게 두개 쓰니까 잘되네요
이것보다 더 좋은 정보 있으시면 같이 공유 했으면 좋겠습니다 ^^
일단 후아고님 답변으로 큰 고비는 넘겼습니다^^
webview.setWebChromeClient(new WebChromeClient() {
@Override
public boolean onJsAlert(WebView view, String url, String message, final android.webkit.JsResult result)
{
if(!message.equals("삭제하시겠습니까?")){
new AlertDialog.Builder(myApp)
.setTitle("서울시의회")
.setMessage(message)
.setPositiveButton(android.R.string.ok,
new AlertDialog.OnClickListener()
{
public void onClick(DialogInterface dialog, int which)
{
result.confirm();
}
})
.setCancelable(true)
.create()
.show();
}
return true;
};
@Override
public boolean onJsConfirm(WebView view, String url, String message, final android.webkit.JsResult result)
{
if(message.equals("삭제하시겠습니까?")){
new AlertDialog.Builder(myApp)
.setTitle("서울시U신문고")
.setMessage(message)
.setPositiveButton(android.R.string.ok,
new DialogInterface.OnClickListener() {
public void onClick(
DialogInterface dialog,
int which) {
result.confirm();
}})
.setNegativeButton(android.R.string.cancel,
new DialogInterface.OnClickListener() {
public void onClick(
DialogInterface dialog,
int which) {
result.cancel();
}})
.show();
}
/*new AlertDialog.Builder(myApp)
.setTitle("서울시의회")
.setMessage(message)
.setPositiveButton(android.R.string.ok,
new AlertDialog.OnClickListener()
{
public void onClick(DialogInterface dialog, int which)
{
result.confirm();
}
})
.setCancelable(true)
.create()
.show();
*/
return true;
};
});



