아이폰에서만 카카오 링크가 작동하지 않습니다

샘플 사이트 보기

  • 사이트를 웹으로 접속해서 카카오 링크(공유) 버튼을 누르면 fail 콜백이 정상적으로 나옵니다.
  • 아이폰에서 모바일웹으로 접속해서 버튼을 클릭하면 아무런 동작을 하지 않습니다.
  • console.log를 찍어 놓고 리모트 콘솔로 봐도 작동하지 않습니다. 이유를 모르겠습니다.
  • iPhone6 - iOS9 입니다.

저도 궁금하네요. 카톡공유나이나 페북공유 ajax call 호출 후 비동기로 열고 있는 것 같은데요. 이를 한번 동기 방식으로 바꿔보시겠어요?
해결책은 아닙니다만 디버깅을 위해서 현상을 좀 확인하고 싶어서요~
iOS9에서는 페북 공유도 안되는 것 같은데 이것도 확인 부탁드릴게요~

안녕하세요.
ios9, 카카오스토리 in app 브라우저로 방문한 저희 페이지내에서 facebook 공유가 되지 않네요.
facebook javascript sdk를 사용하고 있습니다.

ios9, daum in app 브라우저에서는 facebook 공유가 잘 됩니다.

혹시 페북 js sdk 공유 api가(api.facebook.com) 이 요구를 만족하지 못해서 block되는건가요?
페북 도메인이 whitelist에 추가되지 않아서 그런건가요?
https://developer.apple.com/library/prerelease/ios/technotes/App-Transport-Security-Technote/
iOS 9 - 문서 - Facebook for Developers

독특한 현상을 확인했습니다.
모바일 에서는 a 태그에 href 가 없으니깐 클릭을 해도 클릭됐다… 라고 인식을 못하는 것으로 보입니다.
onclick 이벤트로 log를 걸어도 아무런 반응이 없더군요…
href=“javascript:;” 로 선언을 하고 확인하니깐 작동을 하는 것 같습니다.

일단 카카오 링크는 async: false로 페북 링크는 true 로 선언을 했습니다. 조언을 주시면 쌱… 반영하겠습니다 ㅠ
페북 쉐어링은 별도로 고민을 해야할 것 같습니다. (Open Graph를 적용해보려고… 뒤로 미뤄둔 상태 입니다.)

혹시 facebook 공유하기는 팝업창을 띄어서 facebook 의 공유하기 페이지를 로딩하는 방식인가요?

넵, 팝업 방식입니다.
어디를 참고하고 수정해야할지… 찾는 중이었습니다. ㅜㅠ

넵 맞습니다.

현재 facebook js sdk 사용하지 않고 http://www.facebook.com/dialog/xxx popup url로 자체 팝업을 띄우니까 잘되네요.

구글링해보니까 api.facebook.com 암호화방식이 애플요구에 맞지 않다고 하는것 같습니다.
facebook js sdk가 api.facebook.com/xx으로 호출하지 않을까 생각이 드네요.

@dusskapark iOS safari에서 a 태그에 href에 적절한 값이 없어서 event를 catch 못하는 이슈라면 async:false 로 하지 않아도 될 것 같습니다. 제보 감사합니다.

조금 다르지만 비슷한 이슈로 문제를 겪고 있어 댓글 달아봅니다…

저의 경우는 UIWebView 띄워놓고 그안에서 자바스크립트 SDK로 카카오링크 사용하려 했는데… 클릭이 안되더라구요.

안드로이드의 경우 크롬 개발자 도구에서 User-Agent에 “MyUserAgent Android” 와 같이 “Android” 라는 문자열이 포함 되면 카카오SDK에서 요청을 보내는 듯 합니다만,

아이폰의 경우 User-Agent 어딘가에 "iPhone"이 포함되어 있다고해서 요청이 나가지 않고(즉 클릭이 안되는것 처럼 보이고), 원래의 기본 User-Agent (제가 테스트해본 것은 크롬 개발자 도구의 iPhone user agent 들이었습니다)와 어느정도 일치해야만 요청이 나가는 것을 확인했습니다. 아이폰 크롬에서는 확인을 못해봤구요.

아마 @elvis1님의 경우에는 확실친 않지만 카카오스토리 In App 브라우져의 User-Agent문제일 수도 있지 않을까하는 의문이 쪼오오금 듭니다… (HTTPS 프로토콜 문제일수도 있구요)

@dusskapark님의 경우는… 카카오 자바스크립트 SDK가 1.0.47로 업데이트 되면서 아마 고쳐졌겠구요…


아, 참고로… https://developers.kakao.com/docs/js 의 최하단에 명시가 되어 있지만… 웹뷰의 경우 공식 지원은 안한다 하니(아마 user agent 때문에 그러는것 같네요) 위 두분의 경우는 아니지만 인앱 브라우져를 띄워서 서비스를 제공하시는 분들의 경우 아마 네이티브 단에서의 처리가 따로 필요해 보입니다.


방금 확인해봤는데 카카오 자바스크립트 SDK의 경우 User-Agent에 “OS 4_2_1 like Mac OS X;” 같이 OS가 명시되어 있어야만 작동을 하는 것 같습니다.