안드로이드 개발 질문/답변
(글 수 45,052)
이것때문에 몇일고생하는지 모르겠네요,,ㅠ
정상적인 계정정보와 비정상적인 계정정보로 테스트시 해당페이지로 연결이 됨을 확인하였습니다.
하지만 정상계정정보로 웹뷰를 띄울시 로그인된 상태로 연결되지 않습니다.
제가 개념을 잘못잡고 있는건지 어떤부분이 잘못되었는지를 모르겠습니다.
try/catch부분 소스 올립니다. 많은 가르침 부탁드립니다.
if(content.indexOf("https://nid.naver.com/nidlogin.login")!=-1)
webview.loadUrl("https://nid.naver.com/nidlogin.login?svctype=262144&url=http://m.naver.com");
else{
CookieSyncManager.createInstance(this);
CookieManager cookieManager = CookieManager.getInstance();
if(cookie !=null){
cookieManager.removeSessionCookie();
String cookieString = cookie.getName()+"="+cookie.getValue();
cookieManager.setCookie("https://nid.naver.com/nidlogin.login", cookieString);
CookieSyncManager.getInstance().sync();
}
webview = new WebView(this);
//webview.getSettings().setJavascriptEnabled(true);
setContentView(webview);
webview.loadUrl("http://m.naver.com");
}
2010.11.09 11:10:12
1. cookieManager 에서 쿠키를 sync 한 뒤에 바로 WebView 에서 loadurl 하지 마세요.. 싱크하는데 좀 시간이 걸릴 때도 있더라구요..
저 같은 경우 startsync 랑 stopsync 인가요? 이 함수를 이용하는데..0.5ms 정도의 딜레이를 주고 난 뒤에 loadurl 합니다..
2. 쿠키를 얻어올 수 있었다면 nid.naver.com 에 그냥 쿠키를 설정해도 될 것 같은데요^^; 차이가 있는지는 잘 모르겠습니다만..
3. removeSessionCookie 함수 구현을 보시면 쓰레드로 되어있습니다. 즉 removeSessionCookie 가 호출 된 뒤에 sync 해봤자.. 타이밍에 따라서 설정 될 수도 있고 안될 수도 있습니다. removeSessionCookie 함수 뒤에 sync 해주고 싶다면 이 역시 postDelayed 함수 같은걸 사용해서 딜레이를 어느정도 줘야합니다.
2010.12.14 15:43:29
저와 같은 고민을 하고 계시는군요.
이 문제에 대해서 해결이 되셨는지.. 정말 궁금하네요...
제가 만든 액티브 창에서 로그인 ID,PW를 입력하고 확인 버튼을 누르면 웹뷰창에서 로그인 된 상태로 넘어가야 하는데,
그러지 않고 웹 로그인화면이 나와버리게 되네요. 그 상태에서 다른 메뉴를 누르면 그제서야 로그인 된 상태가 되어 있구요...
바보 같은 얘기지만 일주일을 이 문제로 시름 시름 앓고 있답니다...ㅠㅠ
2011.03.22 11:05:56
웹뷰 url에 아래와 같은 url을 사용하면 되는데... 보안에 취약할 것 같아 고민이네요...
https://logins.daum.net/Mail-bin/login.cgi?id=아이디&pw=패스워드&enpw=패스워드&url=이동할주소
[네이버]
http://id.naver.com/nidlogin.login?id=아이디&pw=비밀번호&url=이동할주소