Skip to content

Instantly share code, notes, and snippets.

@rlarla245
Last active July 25, 2018 11:48
Show Gist options
  • Save rlarla245/5abca74bbbc8cf3254f1f593f832da40 to your computer and use it in GitHub Desktop.
Save rlarla245/5abca74bbbc8cf3254f1f593f832da40 to your computer and use it in GitHub Desktop.
Firebase 12 - Create DynamicLinks
13. Firebase – Create DynamicLinks
1. 새로운 프로젝트를 생성합니다. Firebase 연동시킵니다.
2. 문서로 이동 – dynamiclinks – create – android를 참조합니다.
- 컴파일 코드를 삽입합니다.
3. 사용하기 위해서 앱 코드가 필요합니다. 콘솔 – 다이나믹 링크로 이동합니다. 이 페이지의 url 주소가 앱 코드입니다.
4. 문서로 이동하여 파라미터 값을 활용한 다이나믹 링크 생성 문서를 참조합니다. DynamicLink 생성 코드를 복사합니다. 복사해서 onCreate 메소드에 삽입합니다.
세 번째 안드로이드 파라미터 내 빌더의 파라미터 값으로 “com.kakao.talk”을 입력합니다. 카카오톡이 설치되어 있다면 첫 번째 메소드로 이동됩니다. ios 메소드는 생략해도 됩니다.
첫 번째 메소드의 파라미터 값으로 https://www.kakao.com을 입력해봅니다. 두 번째 메소드의 파라미터 값으로는 앱 코드를 입력합니다. https“//는 생략합니다.
- 잠깐 설명하자면 첫 번째 메소드는 내가 세팅을 할 url 주소, 두 번째 메소드는 다이나믹 링크를 만들 도메인 주소, 세 번째는 앱이 없을 경우 앱 설치 관리자(플레이스토어)를 띄웁니다.
5. 이대로 시작할 경우 sout 메소드를 활용하면 android monitor에 url 주소(롱 링크)가 뜨고, 이를 실행하면 카카오톡으로 넘어갑니다.
6. 롱 링크를 줄여봅시다. 문서 하단에 줄이는 코드를 복사해 메소드 하단에 붙입니다.
setLongLink의 파라미터 값으로 아까 생성된 Uri 인스턴스 변수를 넣습니다.
shortLink를 sout 하면 됩니다.
* 짧은 동적링크 생성할 때, 거기도 긴 동적링크 생성할 때처럼 setAndroidParameters(패키지명~)을 통해 패키지명을 등록해줘야지 정상 작동합니다.
강의 중에는 딥링크/동적 링크 도메인만 연결되어서, 앱 구동 안되고 계속 딥링크만 단순하게 호출합니다. "
public class DynamicLinkClass extends AppCompatActivity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_dynamic_link_class);
DynamicLink dynamicLink = FirebaseDynamicLinks.getInstance().createDynamicLink()
.setLink(Uri.parse("https://www.kakao.com"))
.setDynamicLinkDomain("rlarla245.page.link")
// Open links with this app on Android
.setAndroidParameters(new DynamicLink.AndroidParameters.Builder("com.kakao.talk").build())
// Open links with com.example.ios on iOS
// .setIosParameters(new DynamicLink.IosParameters.Builder("com.example.ios").build())
.buildDynamicLink();
Uri dynamicLinkUri = dynamicLink.getUri();
FirebaseDynamicLinks.getInstance().createDynamicLink()
.setLongLink(dynamicLinkUri)
.buildShortDynamicLink()
.addOnCompleteListener(this, new OnCompleteListener<ShortDynamicLink>() {
@Override
public void onComplete(@NonNull Task<ShortDynamicLink> task) {
if (task.isSuccessful()) {
// Short link created
Uri shortLink = task.getResult().getShortLink();
System.out.println(shortLink.toString());
// Uri flowchartLink = task.getResult().getPreviewLink();
} else {
// Error
// ...
}
}
});
}
@Override
public void onBackPressed() {
super.onBackPressed();
startActivity(new Intent(Intent.ACTION_VIEW, Uri.parse("https://rlarla245.page.link/Dr82nM9mXXnW3sf38")));
}
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment