요약하여 설명 드리자면 웹뷰를 하나 띄우고 웹뷰 안의 컨텐츠들을 클릭하여 다음 페이지들이 나오구요
다시 뒤로 갔을때 맨처음 웹뷰를 실행했던 페이지가 나왔을때 처음 실행했던 페이지 index 값이라던지 아니면 구별지을수 있는
방법이 있을까요??
웹뷰에서 다운시에 먹는 코드인데요 제 짧은 능력으로는 첫페이지를 알수 있는 방법이 없습니다..
혹시나 방법을 아시는분은 정말정말 간단한 지나가는 말씀도 좋으니 조언을 듣고 싶습니다..
@Override
public boolean onKeyDown(int keyCode, KeyEvent event)
{
if ((keyCode == KeyEvent.KEYCODE_BACK) && mWebView.canGoBack()) {
mWebView.goBack();
if(mWebView.canGoBack() == false)
{
ImageView sns_titoff = (ImageView)findViewById(R.id.backbutton);
sns_titoff.setVisibility(sns_titoff.GONE);
}
else {
ImageView sns_titoff = (ImageView)findViewById(R.id.backbutton);
sns_titoff.setVisibility(sns_titoff.VISIBLE);
}
return true;
}
return super.onKeyDown(keyCode, event);
}
아 단영님 댓글달아주셔서 감사합니다~
제 질문이 좀 이상했나보네요 제가 하고싶은건 웹뷰 위에 이미지 버튼이 한개 있고 첫 페이지에서는 버튼이 안나오다가 다음 페이지들부터 나오게 하는게 목적입니다.
간단하게 생각해서...
1. 페이지 로딩이 끝날때마다 이전 페이지가 있는지 없는지 체크하셔서 버튼을 보여주거나 숨기시면 됩니다.
(이전 페이지가 없다면 첫페이지 겠죠?)
2. URL이 고정되어 있다면 페이지 로딩이 끝났을때 URL을 체크하여 버튼을 보여주거나 숨기셔도 됩니다.
소스 참고해주시구용. 아래 소스를 이용해서 웹페이지 로딩시마다 프로그래스바를 멋지게(?) 보여줄수도 있습니당..
시작할때 띄우고 다 읽어들이고 숨기고 ㅋㅋ
final class TravlogWebViewClient extends WebViewClient {
@Override
public void onPageStarted(WebView view, String url, Bitmap favicon) {
super.onPageStarted(view, url, favicon);
// 페이지를 로딩할때 할일..
}
@Override
public void onPageFinished(WebView view, String url) {
super.onPageFinished(view, url);
// 페이지 로딩이 끝나고 할일.
}
@Override
public boolean shouldOverrideUrlLoading(WebView view, String url) {
System.out.println("shouldOverrideUrlLoading "+url);
return true;
}
}
처음 실행했던 페이지 index 값이라는게 뭔지 모르겠습니다.
canGoBack()이 false이면 history가 없는 첫번째 페이지인데요.