웹뷰를 하다가 네이버에서 기사를 보고 거기에 연관되 기사를 보는데
그거 다보고 취소키눌러 다시 네이버 기사로 갈려니 안돌아가 ..
계속 그 페이지만 로딩하는거야 !!
뭔 일이래 .. 보니깐
네이버 관련 기사 링크가 이거야
http://www.munhwa.com/news/view.html?no=2012062001030827062002
이런 url로 가는데 이게 분기가 되버리네
http://m.munhwa.com/mnews/view.html?no=2012062001030827062002
그래서 웹뷰에서 기사 보다가 취소키 누르면 http://www.munhwa.com/news/view.html?no=2012062001030827062002 이리로 갔다가 다시 이놈이 http://m.munhwa.com/mnews/view.html?no=2012062001030827062002 이걸 호출 해주시니 ...
뭐 계속 로딩 로딩
그래서 꼼수가 ..
빽기 눌릴때 지금 보고 있는 url을 저장하는거야
@Override
public boolean onKeyDown(int keyCode, KeyEvent event)
{
// TODO Auto-generated method stub
if (keyCode == KeyEvent.KEYCODE_BACK && event.getAction() == KeyEvent.ACTION_DOWN)
{
if (getWebView(page - 2).canGoBack()) {
link = getWebView(page - 2).getUrl();
getWebView(page - 2).goBack();
return true;
}
}
}
return super.onKeyDown(keyCode, event);
}
그러고 여기에 서 진가를 발휘하는거지
WebViewClient mWebViewClient = new WebViewClient()
{
@Override
public boolean shouldOverrideUrlLoading(WebView view, String url)
{
setProgressbar(view.getId(), 0);
//백기 눌렀을때 저장했던 url이 지금 로딩 할려고 하는 url이랑 같냐 ? 그럼 로딩하지 말고 백 한번 더해라
if (link != null && link.equals(url))
view.goBack();
else//이건 보통의 경우고
view.loadUrl(url);
return true;
}
}
아 .. 이거 때문에 머리 터지는 줄알았네 ..
난 안드로이드에서 뭔가 대단한걸 재공 해주는줄 알았더니 ..만 .. 개뿔 ... 없음..
웹뷰 하다가 보니깐
요렇게 찍으니깐 히스토리가 다 나왔다
이걸로 디버그 하니깐 괜찮드라
WebBackForwardList a = getWebView(page - 2).copyBackForwardList();
for (int i = 0; i < a.getSize(); i++)
{
WebHistoryItem h = a.getItemAtIndex(i);
int idx = a.getCurrentIndex();
Log.i("goback",
"onKeyDown (getOriginalUrl) " + h.getOriginalUrl() + " (getTitle) " + h.getTitle()
+ " (getUrl) " + h.getUrl() + " (idx) " + idx + " (getid) " + h.getId()
+ " (i) " + i);
}
'안드로이드' 카테고리의 다른 글
안드로이드 아이콘 만드는 방법 (0) | 2012.06.26 |
---|---|
안드로이드 view -> bitmap 변환 (0) | 2012.06.25 |
안드로이드 brodcastreceiver 종류 i\ (0) | 2011.08.24 |
안드로이드 c2dm (0) | 2011.08.16 |
안드로이드 SharedPreferences 사용(데이터 저장기능) (0) | 2011.08.16 |