shpongle2634 / react-native-kakao-links

React-Native Kakao Link Module
MIT License
28 stars 21 forks source link

buttonObject가 실행되지 않음 #18

Open KibinKim opened 4 years ago

KibinKim commented 4 years ago

example에 나와있는 코드를 가져다가 써봤는데 buttonObject가 실행되지 않더라구요. 무슨 문제인지 감이 안잡혀서 의견을 들어보고싶어요!

제가 사용하고 있는 버전입니다. react-native-cli: 2.0.1 react-native: 0.61.5

shpongle2634 commented 4 years ago

안녕하세요! 아래와 같은 사항 확인 부탁드립니다.

  1. App Key 등 설정 확인. KakaoDev 공식 문서에 안내된 대로, IOS / Android 내에 App key 및 스키마가 설정되었는지 확인 부탁드립니다.

  2. url 문제 Example 에 나와있는 linkObject을 살펴보니 제가 url을 kakao Dev 페이지로 두었는데요. 이 url은 "Scrap 템플릿" 의 경우에만 일반 웹 링크로 이동가능한 것 같습니다

카카오 애플리케이션 생성시, "웹 플랫폼"에 등록한 도메인만 링크가 가능합니다. 해당 다른 템플릿을 통해 특정 url로 이동하고자 하는 경우, 반드시 KakaoDevelopers 콘솔 - 내애플리케이션 - 플랫폼- 웹 을 추가하고 해당 url 도메인을 추가해주시기 바랍니다.

확인 후 안된다면 언제든 답변 남겨주세요!

감사합니다 : )

KibinKim commented 4 years ago

천천히 다시해보니 버튼이 생성이 되네요 감사합니다 :) 그런데 버튼을 2개 만들어보고싶은데 const buttonObject = [{ title: '웹으로 보기', link: linkObject }, { title: '앱으로 보기', link: linkObjet }] 이런식으로 만들었는데

com.facebook.react.bridge.ReadableNativeArray cannot be case to com.facebook.react.bridge.ReadableNativeMap 이런 오류가 뜨네요. 2개를 만들 수 있는 방법이 있을까요?

shpongle2634 commented 4 years ago
  linkText = async () => {
    try{
      const options = {
        objectType:'text',//required
        text:'텍스트 입력',//required
        link:linkObject,//required
        // buttonTitle:'',//optional buttons랑 사용 불가.
        buttons:[buttonObject]//optional
      };
      const response = await RNKakaoLink.link(options);
      console.log(response);
    }catch(e){
      console.warn(e);
    }
  }

위 예시로 말씀드리면, buttons:[buttonObject] 에 이미 배열을 선언해놨다보니, 배열에 배열이 들어가서 그런듯 하네요, buttons:buttonObject로 수정해주시면 됩니다~

또한, 버튼이 보이지 않는경우에는 마찬가지로 KakaoDevelopers 콘솔 - 내애플리케이션 - 플랫폼- 웹 에 링크에 해당하는 도메인을 추가해 주셔야합니다~