교육/공부

[안드로이드] 스키마를 이용하여 액티비티 호출하기! Custom Url Scheme!

2017.08.06

안녕하세요 푸민입니다.

안드로이드에서 스키마를 잘 활용하면 굉장히 이점이 많습니다.

스키마는 외부에서 자신의 앱에 접근할 수 있도록 하나의 통로를 열어주는 역활을 하는데요.

한번 알아볼까요?

 

1. 먼저 어떤 스키마를 만들지 정합니다.

 안드로이드에서 스키마란 우리가 일반적으로 인터넷에 접속할 때 http://www.google.com/ 와 같은 주소 체계를 사용합니다. 여기서 http:// 이 부분이 안드로이드에서 만들수 있는 스키마입니다.

 

 혹시 페이스북이나 카카오톡을 연동해 보신분들은 아실수 있는데요.

fb://

kakaotalk://

위와 같은 스키마가 커스텀 스키마입니다.

저희는 테스트로 myapp:// 으로 스키마를 한번 만들어보겠습니다.

 

2. 안드로이드 메니페시트에 외부에서 호출할 액티비티의 속성으로 인텐트 필터를 추가합니다.

<intent-filter>

<action android:name="android.intent.action.VIEW"/>

<category android:name="android.intent.category.BROWSABLE"/>

<category android:name="android.intent.category.DEFAULT"/>

<data android:scheme="myapp"/>

</intent-filter>

 해당 스키마 부분에 myapp을 정의해줍니다.

 

3. 외부에서 스키마를 호출합니다.

Intent intent = new Intent();

intent.setAction(Intent.ACTION_VIEW);

intent.addCategory(Intent.CATEGORY_BROWSABLE);

intent.addCategory(Intent.CATEGORY_DEFAULT);

intent.setData(Uri.parse("myapp://"));

startActivity(intent);

요렇게 우리가 설정해준대로 인텐트를 이용해서 요청하면 해당 액티비티를 불러올수 있습니다.

모바일 웹에서도 해당 액티비티를 불러올 수 있는데요.

안드로이드 폰내에서 <a> 태그를 사용하여 해당 스키마를 호출하면 해당 액티비티를 찾아서 불러올 수 있습니다.

 

제가 하다가 막혀서 사용했던 스택오버플로우 답변 참조하세요~

 

 

 

 

 

http://stackoverflow.com/questions/28816137/android-custom-scheme-not-working

좋아요
태그
인기 포스팅 보기