우찬쓰 개발블로그
안드로이드 공유하기, 동적링크(딥링크) 기능 정리 본문
공유하기 기능은 크게 두가지로 나눌 수 있다.
1. 각 SNS별 SDK를 이용하는 방법 (카카오톡 등)
2. 인텐트로 action을 보내는 방법
이 외에도 공유하기는 메일이나 문자가 될 수도 있다.
1번으로 구현을 하려고 한다면 주의할 점은, 모든 SNS플랫폼이 SDK를 가지고 있는 것은 아니다.
각 SNS마다 공유하기 버튼을 직접 만들어 주어야하고 각 SNS마다 공유하기 로직을 해당 SNS플랫폼에 맞게 구현해 주어야 한다.
하지만 2번의 인텐트로 action을 보내는 방식은 OS에서 공유하기 System UI를 띄워주므로 작업량을 많이 줄일 수 있다. (아래는 코드 예시)
val intent = Intent(Intent.ACTION_SEND)
intent.type = "text/plain"
intent.putExtra(Intent.EXTRA_TEXT, "공유할 내용")
startActivity(Intent.createChooser(intent, "System UI에 표시할 문구"))
둘중 하나의 방법을 선택하여, 혹은 혼용하여 공유한 것이 해당 서비스의 URL이라고 했을때, 일반적 서비스들은 동적링크를 활용한다.
동적링크란 안드로이드와 아이폰은 해당앱이 안깔려 있을경우 앱스토어로, 앱이 이미 유저에게 깔려있을경우 앱에서 따로 정의된 동작을 구현하여 앱의 해당 화면으로 가게 하는 방식인데, 동적링크는 파이어베이스에서 등록할 수 있으며 고정url에 대해서는 파이어베이스에 바로 등록해서 사용할 수 있다.
하지만 url이 계속 변한다면(게시물 URL 등) 파이어베이스에 등록 후 해당동작에 대해 추가 작업을 해주어야 한다.
이에 대해 사용할 수 있는건 URL파라미터로 동작을 제어하는 커스텀 동적링크이다. (아래 링크의 공식문서를 참고.)
https://firebase.google.com/docs/dynamic-links/create-manually?hl=ko
이렇게 하고나면 아이폰과 안드로이드에대해선 동작 정의가 끝난다. 하지만 커스텀 동적링크는 url이 너무 길어서 그대로 쓰기에는 유저가 불편을 느낄 수 있다.
이러한 문제는 서비스 서버의 URL을 호출하면 해당 커스텀 동적링크로 리다이렉트 시켜주는 방식으로 구현하여 해결할 수 있다.
'안드로이드 > 안드로이드 개발' 카테고리의 다른 글
안드로이드 status bar 투명 만들기 (0) | 2019.04.21 |
---|---|
안드로이드 오레오 이상 푸시 알림 진동 끄는 법 (Android Notification vibrate disable) (0) | 2019.04.21 |
ImageVIew 비율 유지하기 (0) | 2019.04.12 |
Viewpager 마지막 page 스크롤 효과 없애기 (0) | 2019.04.11 |
Gradle에서 각 test,staging,real server url 세팅하기 (0) | 2019.04.10 |