일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | 6 | 7 |
8 | 9 | 10 | 11 | 12 | 13 | 14 |
15 | 16 | 17 | 18 | 19 | 20 | 21 |
22 | 23 | 24 | 25 | 26 | 27 | 28 |
29 | 30 | 31 |
- 소프시스 밤부 좌식 엑슬 테이블
- 커스텀린트
- 자취필수템
- 한단어의힘
- 목적중심리더십
- 베드트레이
- 베드테이블
- 한달브런치북만들기
- 소프시스
- 어떻게 나답게 살 것인가
- 목적 중심 리더십
- 지지않는다는말
- 리얼하다
- 프래그먼트
- 재택근무
- 한달독서
- 좌식테이블
- 1일1커밋
- 브런치작가되기
- 끝말잇기
- 한달어스
- 안드로이드
- 함수형 프로그래밍
- 테트리스
- 슬기로운 온라인 게임
- 아비투스
- 면접
- 캐치마인드
- 북한살둘레길
- T자형인재
- Today
- Total
정상에서 IT를 외치다
[Android, URL Scheme] 외부 스킴 사용하여 앱 실행하기 본문
안녕하세요. 블랙진입니다.
이번 시간에는 외부 스킴을 사용하여 앱을 실행시키는 법에 대해 포스팅 해보겠습니다.
외부 스킴(Custom Url Scheme)?
모바일 환경에서 위와 같은 링크(스킴)를 눌렀을 때 해당 앱이 설치 되어 있다면 실행되는 적이 있었죠? 혹은 문자메시지에서 링크를 누르면 앱이 자동으로 실행되거나 했을 겁니다. 이렇게 외부에서 앱을 실행시킬 수 있는 방법에 대해 포스팅 해보겠습니다.
1. AndroidManifest 에서 intent filter 를 설정해 줍니다.
실행 시키고 싶은 Activity 에 scheme:host 형태의 URL 을 정의해 줍니다.
<activity android:name=".MainActivity">
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
<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:host="action" android:scheme="blackjinapp" />
</intent-filter>
</activity>
이렇게 선언하면
blackjinapp://action URL 을 실행하면 MainActivity 가 실행됩니다.
2. 구현 테스트 하기
파이어베이스를 통해 간단히 구현 테스트를 하실 수 있습니다.
위 링크에서 아래로 내려보시면 위와 같이 HTTP URL 테스트 도구가 있습니다.
URL : blackjinapp://action
으로 설정해 주시고
App ID : packageName
을 적어주시면 됩니다. 다음 QR 코드를 스캔하면
위와 같은 링크를 가진 웹 페이지가 나옵니다. 링크를 누르면 App ID 에서 설정해 주었던 앱이 실행됩니다. 정말 쉽죠:)
3. 파리미터 전송하기
위 방법으로 앱을 실행하는데 성공 하셨다면 이번에는 파라미터를 전달해 보겠습니다.
blackjinapp://action?when=201809&message=좋아요와 댓글은 사랑입니다.
위와 같이 '변수명 = 데이터' 형식으로 URL 뒤에 붙여주면 됩니다.
MainActivity
public class MainActivity extends AppCompatActivity{
@Override
protected void onCreate(@Nullable Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
Intent intent = getIntent();
if (Intent.ACTION_VIEW.equals(intent.getAction())) {
Uri uri = intent.getData();
if(uri != null) {
String when = uri.getQueryParameter("when");
String message = uri.getQueryParameter("message");
Log.d("MyTag","when : " + when + " , message : " + message);
}
}
}
}
스킴이 설정된 Activity 에는 위와 같은 방법으로 파라미터를 받아주면 됩니다.
4. 테스트 하기
USL 부분에 파라미터를 추가했습니다.
테스트에서 설정한 App ID 를 가진 앱이 설치 된 스마트폰에서 QR 코드를 스캔하셔야 됩니다. 그러고 나서 링크를 클릭하면 앱이 실행되고 아래와 같이 로그를 통해 데이터를 받아온것을 확인 할 수 있습니다. 만약! 앱이 설치 되어 있지 않다면 자동으로 APP ID 에 해당하는 구글스토어로 이동됩니다.
when 에는 '201808' , message 에는 '좋아요와 댓글은 사랑입니다.'
이제 여러분들도 외부 스킴을 이용한 멋진 앱을 만들어 배포하시기 바랍니다. 그럼 안뇨옹 ~!
<참고자료>
'안드로이드' 카테고리의 다른 글
[Android, RecyclerView] 리사이클러뷰 레이아웃 매니저 종류 (2) | 2018.09.18 |
---|---|
[Android, RecyclerView] 리사이클러 뷰 만들기 (12) | 2018.09.18 |
[Android, realm migration] Realm Migration 적용하기 (0) | 2018.09.14 |
[Android, Lottie] Lottie 를 사용한 애니메이션 효과 (4) | 2018.09.12 |
[Android, bitmap] 비트맵에 대한 탐구_이미지 자르기 (0) | 2018.09.06 |