shpongle2634 / react-native-kakao-links

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

iosExecutionParams 에 어떤걸 넣어야하나요 #11

Closed hckcksrl closed 5 years ago

hckcksrl commented 5 years ago

iosExecutionParams에 넣을 url을 몰라서 react-navigation 을 보고 그대로 따라했습니다. 이때 ' xcrun simctl openurl booted URLSchema://Route?params=id ' 를 했더니 시뮬레이터에서는 바로 Route/parmas=id , 지정한 네비게이션화면으로 바로 넘어갔습니다. 그래서 디바이스 에서도 작동이 잘되나 해봣습니다. iosExecutionParams :"Route?params=id" 넣고 링크를 걸어봣는데 계속 메인화면만 뜹니다. 왜이러는 걸까요. Route 앞에 "/" , "//" 다 넣어봣는데도 지정한 네비게이션화면을 가지않고 메인화면만뜹니다. 어떻게 iosExecutionParams 넣어야하나요?

shpongle2634 commented 5 years ago

안녕하세요,

iosExecutionParams :"Route?params=id"

이부분이 문제가 있는듯합니다.

카카오 링크 가이드에 의하면 iosExecutionParams 에는 Route가 포함되지 않은 key=value 형태로 값을 주셔야 합니다.

따라서 시뮬레이터 테스트를 위해서 커맨드에서 입력한 URLSchema://Route?params=id 는 path="Route", params="id" 라는 정상적인 URL로 라우트가 가능하지만

iosExecutionParams :"Route?params=id"

로 링크를 눌렀을때는 URLSchema://?Route?params=id 이런 형태로 url이 들어가지 않을까 싶습니다

즉, path="Route", param= "id" 가 아닌 path="", Route?param = "id" 로 읽는것 같습니다. Route?param 전체를 변수 이름으로 읽어서 라우트가 안되는것 같네요..!

iosExecutionParams ="path=Route&param=id"와 같이 Route 정보도 쿼리스트링 변수 형태로 넣는건 어떠신가요?

hckcksrl commented 5 years ago

말해주신대로 iosExecutionParams ="path=Route&param=id" iosExecutionParams ="path=Route?param=id" iosExecutionParams ="params=Route&param=id" iosExecutionParams ="params=Route?param=id" 이렇게 다 해봣는데 안되네요.ㅜㅜ

shpongle2634 commented 5 years ago

Duplicate of #3

이 질문글 참고하시면 좋을 것 같습니다

질문글에 제가 남겨드린 답변처럼,

Deep Linking이 아닌 수동으로 특정 컴포넌트에 url 을 navigate 하는 방식으로 구현하시면 좋을 것 같네요.

hckcksrl commented 5 years ago

제가 link를 뽑아봣는데 URLSchema://kakaolink?param=id 이렇게 나오더라고요 가운데에 kakaolink가 있어서 안되는거엿나봐요.

hckcksrl commented 5 years ago

앱이 켜져있을때는 param 을 지정한 화면으로 갔는데 앱을 아예 끄고 카카오링크를 눌렀을때 Linking이 안되서 메인화면으로가지네요 kakaolink? 이부분을 없애면 react-navigation routename 으로 이동할수 있을거같네요

shpongle2634 commented 5 years ago

네 아래 RN App State 관련 ref를 보시면 알 수 있듯, inactive | background 상태에서 링크를 눌렀을때에 대해서도 고려를 해주셔야합니다 상위 컴포넌트에서 AppState가 active로 전환시 link 처리를 하는 방식으로 구현하시면 좋지 않을까 싶네요 ^^

https://facebook.github.io/react-native/docs/appstate