- [Android] 공유하기 기능 추가하기 | Firebase Dynamic Links2023년 03월 06일 18시 27분 38초에 업로드 된 글입니다.작성자: 핀수728x90반응형
상황
메인 화면에서 공유하기 버튼을 클릭하면
다음과 같이 ShareSheet가 뜨고,
공유했을 때 앱이 실행되거나 설치 되지 않은 경우 설치 화면으로 이동할 수 있도록 해주려고 한다.
예시) 오늘의 집 Firebase Dynamic Link
앱 설치 여부와 상관 없이 여러 플랫폼에서 원하는 대로 작동하는 링크
관련 검색을 해보다 ‘동적 링크’라는 것을 알게 되었다.
그러니까, 해당 링크를 실행하는 플랫폼이 무엇이든 거기에 맞는 환경을 제공할 수 있는 것이다.
원리
동적 링크를 만들기 위해서는 Firebase Console, REST API, iOS 또는 Android Builder API 를 사용하거나 앱에 지정된 도메인에 동적 링크 매개변수를 추가하여 URL을 생성하면 된다.
- 이때 매개변수에는 사용자의 플랫폼 및 앱 설치 여부에 따라 열 링크를 지정한다.
사용자가 링크를 열었는데 해당 앱을 설치하지 않은 경우, 특별한 작업을 지정하지 않았다면 설치화면으로 이동한다.
앱을 설치하고 나면 앱에 전달된 링크를 가져와 앱에 맞게 딥 링크를 처리한다.
Firebase 연동하기
아직 연동하지 않았다면 해당 포스트를 참고하면 된다.
내 프로젝트와 Firebase 연동하기
1. Firebase 사이트로 이동한다. 링크 2. 시작하기를 누른다. 3. 프로젝트 만들기를 클릭한다. 4. 프로젝트의 이름을 입력한다. 각 화면의 안내에 따라 프로젝트를 생성하면 된다. 5. 프로젝트 생성이
www.pinslog.com
동적 링크 생성하기
해당 프로젝트로 이동한다.
왼쪽 패널 참여 > Dynamic Links 클릭
다음과 같은 화면이 나온다.
구글이 제공하는 도메인을 사용하고 계속을 눌렀다.
단축 URL 링크 설정의 링크는 생성해주는 대로 다음으로 넘어갔다.
동적 링크 설정에서는 테스트로 내 블로그 주소를 넣었다.
iOS에서는 따로 처리해줄 수 있는 것이 없으므로 일단 제외하고
안드로이드에 관한 설정을 마쳐준다.
5번의 설정까지 마쳐주고 테스트 링크를 전달해보았다.
PC에서 실행하면 내 블로그로,
iOS 기기에서 실행하면 내 블로그로,
테스트 기기인 Android에서 실행하면 내 앱으로 이동한다.
*앱 삭제후 해당 링크를 실행시켜보니 플레이 스토어로 이동했다. 다만, 앱이 아직 출시 되지 않았기 때문에 오류화면이 나타난다.
동적 링크 생성 화면 하단에 보면 프로그래밍 방식으로도 링크를 생성할 수 있다는 걸 알 수 있는데,
이는 추후에 알아볼 것이다.
다른 앱으로 간단한 데이터 보내기
이제 동적 링크는 만들었으니, ShareSheet를 동작하게 해야한다.
Android에서는 Intent 및 관련 extra 를 통해 사용자가 원하는 앱을 통해 빠르고 쉽게 정보를 공유할 수 있도록 도와준다.
사용자가 두가지 방식으로 데이터를 전달할 수 있다.
- Android Sharesheet
- 주로 앱 외부나 다른 사용자에게 직접 콘텐츠를 보낼 수 있음
- 예) 친구와 URL 공유
- Android Intent Resolver
- 데이터를 잘 정의된 작업의 다음 단계로 전달하는 데 적합
- 예) 앱에서 PDF를 열고 사용자가 선호하는 뷰어를 선택하도록 함
Android Sharesheet 사용하기
간단한 텍스트 콘텐츠를 보내는 코드를 알아보자.
val sendIntent: Intent = Intent().apply { action = Intent.ACTION_SEND putExtra(Intent.EXTRA_TEXT, "This is my text to send.") type = "text/plain" } val shareIntent = Intent.createChooser(sendIntent, null) startActivity(shareIntent)
샘플 프로젝트에서 실행해 보았다.
실제 프로젝트에서 동적 링크를 공유하도록 하면
추가적인 설정은 차차 알아보도록 할 것이다.
동적 링크가 무엇이고, 어떻게 생성하는지에 대해 알아보았다.
공부하며 작성된 글이라 잘못된 정보가 있을 수 있습니다.
말씀해주시면 수정하겠습니다. 감사합니다.
References
아래 글을 참고하여 작성 되었습니다.
안드로이드 공유하기 기능으로 해당 앱 실행 후 원하는 페이지로 이동.
안드로이드 앱을 이용하시다보면 공유하기로 카톡이나 각종 다양한 SNS 페이스북,인스타그램으로 게시글같은곳에 공유를 하여 그 링크를 클릭하면 바로 앱이 실행된다거나, 앱 실행 후 앱 내부
onedaycodeing.tistory.com
다른 앱으로 간단한 데이터 보내기 | Android 개발자 | Android Developers
인텐트를 구성할 때 인텐트가 '트리거'할 작업을 지정해야 합니다. Android에서는 추측할 수 있듯이 인텐트가 하나의 활동에서 데이터를 보내는 것임을 표시하는 ACTION_SEND를 포함하여 여러 작업을
developer.android.com
728x90반응형'Do what you want > WW' 카테고리의 다른 글
WearWeather : 기온별 옷차림을 확인해보세요! (0) 2023.10.09 [Android] 프로그래밍 방식으로 동적 링크 만들기 (0) 2023.03.08 [Android] locationManager.getLastKnownLocation(LocationManager.GPS_PROVIDER) 이 null을 반환할 때 (0) 2022.12.25 [Android] Bottom Appbar와 FloatingActionButton (feat. Appbar left margin 없애기) (0) 2022.12.01 바텀 네비게이션 추가하기, 프로토타입 만들기 (0) 2022.03.20 다음글이 없습니다.이전글이 없습니다.댓글