안녕하세요, 현재 Capacitor 2를 이용해 하이브리드 앱을 개발하고 있습니다.
공유하기 기능을 카카오 링크 기능을 사용해서 구현 하고 있는데요, kakao javascript sdk의 Kakao.Link.sendCustom을 사용하고 있습니다. 웹, 안드로이드에서는 정상적으로 kakaolink intent를 통해 카카오톡이 열리고 있습니다. ios의 경우에 Kakao.Link.sendCustom을 호출하면 Kakao CORS Provider
와 같이 cors 에러가 발생합니다. 안드로이드 웹뷰에서는 kakaolink intent가 실행되는데 ios 웹뷰에서만 이슈가 있습니다. info.plist에 LSApplicationQueriesSchemes 에 kakaolink 도 추가했습니다. 도움 주시면 감사하겠습니다.
해당 카카오링크 기능이 있는 페이지 URL알려주시겠어요?
iOS 인앱브라우저에서 해당 페이지 정상작동하는지 재현 테스트 먼저 해보겠습니다.
안녕하세요. ios 인앱브라우저에서는 잘 동작하고 있습니다. ios 앱에서만 문제가 발생하고 있습니다. 우선 해당 링크는 capacitor://app.moranique.com/products/GUVP848ABLVF 입니다. 여기서 공유하기 버튼을 누르시면 됩니다. 감사합니다.
네넵.
제작하신 앱의 웹뷰(인앱브라우저) 에서 해당 페이지의 카카오 링크 공유하기시 에러 발생한다는 말씀이시죠?
Kakao.Link.sendCustom({
templateId: PRODUCT_TEMPLATE_ID,
templateArgs: {
…
},
})
공유하기 버튼 클릭시 위와 같은 형태로 실행이 됩니다. 현재 ios 앱은 런칭 전이라 스토어에 없습니다.
테스트용 iOS 앱에 웹뷰 올리고 https://app.moranique.com/products/GUVP848ABLVF 사이트 접속해서 공유하기 해보니
잘 작동하는데요. 사이트에는 이상없고 제작하신 iOS 앱에 웹뷰 URL처리부 확인해보셔야 할 것 같아요.
CORS오류라면 웹뷰액션 중
제작하신 앱이 받아서 처리 하지 말아야할 URL 도 받아 처리하신 듯해요.
sendCustom을 호출하면 url이 두번 넘어오는데요,
about:blank 한번, Kakao CORS Provider… 한번
그러고는 무응답입니다.
about:blank가 불리기 이전에 오류가 발생한걸까요?
capacitor에서 빌드를 하면 네이티브(ios, android) 기기 로컬에 빌드된 web asset이 복사됩니다. 그리고 그 web asset을 이용해서 웹뷰를 보여줍니다. ios의 경우에 scheme이 capacitor:// 가 됩니다. tim.l 님께서 테스트하신 방법처럼 웹뷰에서 사이트에 접속하는 방법과는 조금 다른게 아닐까합니다.
카카오링크 메시지 전송할땐 http/https 외 custom scheme 은 사용 불가능한것 같아서, http/https 로 보내고 따로 처리하도록 했습니다. 감사합니다.