앱을 링크로 공유하는 방법(딥링크 만드는 방법)
1. uri scheme
2. 앱링크 - 도메인 주소 사용
3. firebase Dynamic Link -
SHA-1 서명 키를 지정 하는 법 :
gralde 코끼리를 누르고 'signingReport' 입력
프리픽스 추가:
프리픽스가 없으면 만든다. 구글이 제공해주는 도메인을 사용하면 된다.
사용자가 볼 url
android manifest에 설정할 intent filter
- firebase gradle 추가
- manifest.xml
링크를 클릭했을때 열리기를 원하는 액티비티에 intent 설정 <intent-filter> <action android:name="android.intent.action.VIEW"/> <category android:name="android.intent.category.DEFAULT"/> <category android:name="android.intent.category.BROWSABLE"/> <data android:path"/main" android:host="example.com" android:scheme="https"/> </intent-filter>
- 딥링크 알아내기, 처리하기
- getIntent().getData()를 사용하여 인텐트에서 링크를 알아낼 수도 있지만, 링크로 인해 실행될 수 있는 모든 활동에서 getDynamicLink()를 호출해야 합니다. getDynamicLink()를 호출하면 링크가 검색되고 데이터가 삭제되므로 앱에서 한 번만 처리됩니다.
일반적으로 메인 활동뿐 아니라 링크와 일치하는 인텐트 필터가 실행하는 모든 활동에서 getDynamicLink()를 호출합니다.- 해당 앱이 깔려있다면 앱으로, 깔려있지 않다면 구글플레이스토어로 이동합니다.
Firebase.dynamicLinks .getDynamicLink(intent) .addOnSuccessListener(this) { pendingDynamicLinkData -> // Get deep link from result (may be null if no link is found) var deepLink: Uri? = null if (pendingDynamicLinkData != null) { deepLink = pendingDynamicLinkData.link } // Handle the deep link. For example, open the linked // content, or apply promotional credit to the user's // account. // 원하는 구현 처리 // ... } .addOnFailureListener(this) { e -> Log.w(TAG, "getDynamicLink:onFailure", e) }
val clipboard = context.getSystemService(CLIPBOARD_SERVICE) as ClipboardManager val clip: ClipData = ClipData.newPlainText("appUrl", "https://worlde.page.link/Tbeh") clipboard.setPrimaryClip(clip) Toast.makeText(context, "링크가 복사되었습니다.", Toast.LENGTH_SHORT).show()
저는 그냥 버튼을 누르면 링크가 복사되게 구현 했습니다.