ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • [카카오톡 로그인 연동]하이브리드 웹, 앱 카카오톡 로그인 연동
    Android 2019. 6. 14. 15:26

     

    카카오 로그인 연동 방법 - 웹

    https://developers.kakao.com/docs/js#%EC%B9%B4%EC%B9%B4%EC%98%A4-%EB%A1%9C%EA%B7%B8%EC%9D%B8

     

     

    반응형 웹에서도 작동하고 인앱 웹뷰에서도 작동하는 시스템은 아직 카카오에서 지원되지 않고 카카오 측에서도 

     

    해당 환경에 맞는 SDK를 사용하라고 권장한다.

     

    반응형 웹에서 카카오톡 로그인을 연동하고 웹뷰에서 띄우면 반응이 없을것이다.

     

    허나 이는 웹뷰에서 팝업창을 지원하지 않는 이유때문에 발생하며 해결방법은 아래와 같다.

     

    android webview에서 팝업을 띄워야 할 때가 있는경우

    webChromeClient의 onCreateWindow를  Override하여야 하며 webview setting을 다음과 같이 변경해보자.

     

     

    웹뷰 셋팅 수정

    WebSettings settings = webView.getSettings(); 
    settings.setJavaScriptEnabled(true); 
    settings.setJavaScriptCanOpenWindowsAutomatically(true); 
    settings.setSupportMultipleWindows(true);

     

     

     

     

    WebChromeClient Override

    @Override 

    public boolean onCreateWindow(WebView view, boolean isDialog, boolean isUserGesture, Message resultMsg) { WebView newWebView = new WebView(MainActivity.this);

    WebSettings webSettings = newWebView.getSettings();

    webSettings.setJavaScriptEnabled(true); 

     

    final Dialog dialog = new Dialog(MainActivity.this); dialog.setContentView(newWebView); dialog.show(); newWebView.setWebChromeClient(new WebChromeClient() { 

    @Override 

    public void onCloseWindow(WebView window) { dialog.dismiss(); }

    });

     

    ((WebView.WebViewTransport)resultMsg.obj).setWebView(newWebView);

    resultMsg.sendToTarget(); 

    return true;

    }

    댓글

Designed by Tistory.