안드로이드 웹뷰 (Webview) 를 이용하여 페이스북 로그인시
브라우저(크롬)에서는 제대로 동작을 하는데, 웹뷰에서는 안되는 경우가 있습니다.
로그인 상태를 확인해보면 connected 값이 나오지만,
아래와 같은 메시지가 뜨기도 하고
you are not logged in. please login and try again facebook
다음과 같은 메시지가 뜨기도 합니다.
Unsafe JavaScript attempt to initiate navigation for frame with URL
이때, getLoginStatus 의 결과값을 확인해보면 unknown 이 나오는 걸 볼 수 있습니다.
이와 같은 현상이 생기는 이유는 두가지로 볼 수 있습니다
1. 서로다른 도메인이 연결되는 mixed contents
2. cookie 값이 저장되지 않음
이를 해결하기 위해서는 다음과 같이 webview 클래스에 코드를 추가하면 됩니다.
import android.webkit.CookieManager;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
mWebView = findViewById(R.id.web_view);
WebSettings webSettings = mWebView.getSettings();
webSettings.setJavaScriptEnabled(true);
mWebView.getSettings().setMixedContentMode(WebSettings.MIXED_CONTENT_ALWAYS_ALLOW);
CookieManager cookieManager = CookieManager.getInstance();
cookieManager.setAcceptCookie(true);
cookieManager.setAcceptThirdPartyCookies(mWebView, true);
if (savedInstanceState == null) {
mWebView.post(new Runnable() {
@Override
public void run() {
mWebView.loadUrl("http://도메인");
}
});
}
mWebView.setWebChromeClient(new WebChromeClient());
}
하이브리드앱 내의 모바일웹에서 아이폰/안드로이드 접속 확인/구분하기 (2) | 2019.02.01 |
---|---|
안드로이드 webview 웹뷰에서 이미지 수정시 업데이트가 안될때, 이미지 변경 (0) | 2019.01.19 |
폰갭 PhoneGap 그리고 PhoneGap Build 로 하이브리드앱 개발 (0) | 2016.07.26 |
ionic sample project 를 안드로이드 emulator 로 실행시키기 (0) | 2016.07.02 |
github 에서 ionic sample project 를 다운받아서 실행시켜보기 (0) | 2016.07.02 |
댓글 영역