상세 컨텐츠

본문 제목

[android] Browser 의 링크를 통해 내 앱 실행시키기

스마트기기개발관련/안드로이드 개발

by AlrepondTech 2020. 9. 22. 03:45

본문

반응형

 

 

=================================

=================================

=================================

 

 

 

 

 

 

 

출처: http://aroundck.tistory.com/2461

 

 android, Browser 의 링크를 통해 내 앱 실행시키기  

 

 

Declare Intent-filter on Manifest

 

The activity which wants to be started has to have action name "android.intent.action.VIEW".

Additionally, it has two basic category; they are android.intent.category.DEFAULT and android.intent.category.BROWSABLE.

To link the url to the activity, intent-filter has to have data and it declares one or some of followings : scheme, host, port, path.

<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:scheme="myapp" android:host="myapp.com"/>

</intent-filter>

 

 

For testing.

<html>

      <body>

          <a href="myapp://myapp.com">Click to lead apk</a>

      </body>

</html>

 

Keep it mind that WebView with manual html document does not support such a link.

You should try this one on the real web page.

 

How to get additional info?

 

Via getIntent().getData() you can get uri.

So if you want to pass some parameters, you can just add it with the agreement of the app developer.

 

접기

Action, Android, android.intent.action.view, android.intent.category.browsable, android.intent.category.default, android:host, android:scheme, Category, data, getdata, getintent, host, intent-filter, manifest, Name, parameter, scheme, test, url, xml, [android] Browser 의 링크를 통해 내 앱 실행시키기, 안드로이드

접기

 

 

=================================

=================================

=================================

 

 

 

 

반응형

 

 

728x90

 

 

 

 

출처: http://trend21c.tistory.com/1269

운영중인 웹서비스에 모바일 브라우저를 통해 사용자가 접속했을때

해당 웹서비스에서 접속한 디바이스의 전용 어플리케이션을 제공하고 있다면

사용자에게 지금 사용중인 디바이스의 전용 어플리케이션이 있다고 알려준다면

사용자에게 매우 유용한 정보가 됩니다.


이러한 정보와 함께 곧바로 마켓에서 다운받을 수 있도록 마켓으로 가는 링크를 제공해주면 좋은데요.


다른 여러방법도 있지만 가장 간단하게 구현하는 방법은 해당 앱의 웹URL을 링크거는것 입니다.


앱스토어의 경우에는

http://itunes.apple.com/kr/app/quik/id418822405

이런 링크가 되겠고요.

앱스토어는 웹url 찾는것도 만만치가 않네요.



안드로이드 마켓의 경우는

https://market.android.com/details?id=com.always.quik2

이런 링크형태입니다.


앱스토어는 URL의 맨 마지막에 id값이 들어가고,

안드로이드 마켓의 경우는 앱의 패키지명이 들어갑니다.




<a href="해당 앱의 URL">이 링크를 클릭하면 마켓으로 이동합니다</a>



모바일 브라우저에서 각각 마켓, 앱스토어와 연동되는 링크를 사용자가 클릭한 경우

OS가 알아서 이를 인지하고 마켓 또는 앱스토어 어플리케이션을 실행하여 해당 앱의 화면으로 이동합니다.

 

 

 

=================================

=================================

=================================

 

 

출처: http://blog.naver.com/PostView.nhn?blogId=huewu&logNo=110119918501

 

Intercept Links Using an Intent Receiver

이 포스트는 구글 I/O Android Protips 세션 0:38:25 지점의 내용을 기반으로 작성되었습니다.

 

 안드로이드의 Intent / Intent Filter 매커니즘은 안드로이드 플랫폼의 가장 독특한 특징 중에 하나입니다. 인텐트 필터는 마치 전화 번호부와 같이, 엑티비티/서비스/리시버와 같은 안드로이드 어플리케이션 컴포넌트들간에 공개된 API 로 기능합니다. 이를 통해 각기 다른 출신의 어플리케이션 컴포넌트들이 서로 커뮤니케이션 할 수 있으며, 개발자들은 코드 레벨에서 더 나아가 어플리케이션 컴포넌트 단위로 어플리케이션 구조를 설계하고 손 쉽게 재사용할 수 있습니다. 그래서 보다 편안히 잠자리에 들 수 있지요.

 

 그런데, 이 Intent / Intent Filter 를 활용한 안드로이드 디바이스에 기본 탑재된 인터넷 브라우저와 상호 작용할 수 있는 방법도 있더군요. 예를 들어, 이 링크를 안드로이드 단말 상에서 클릭해 보시면, 탑재된 구글 맵이 호출되는 것을 확인 하실 수 있습니다. 우리가 작성한 어플리케이션도, 인터넷 페이지의 특정 형식의 주소와 상호 작용 할 수 있습니다. 혹시 알고 계셨나요?;;; 방법은 아주 단순합니다. 아래와 같은 인텐트 필터를 메니페스트 상에 추가하기만 하면 됩니다.

<activity android:name=".MyActivity">

<intent-filter>
<category android:name="android.intent.category.DEFAULT"/>
<category android:name="android.intent.category.BROWSABLE"/>
<data android:scheme="http"
      android:host="mysite.com"
      android:pathPrefix="/news/articles/"/>
</intent-filter>

</activity>

 

 핵심은 두 가지. Intent Filter 의 카테고리로 android.intent.category.BROWSABLE 를 추가하고, 캡처하고자 하는 URL 의 형식을 data 요소의 속성 값으로 표현하는 것 입니다. URL 형식은 4가지 속성 값 -  scheme, host, pathPrefix, port 를 활용하여 표현할 수 있으며, 각각은 일반적으로 URL 를 구성하는 요소를 나타냅니다. 간단히 설명해 보면, URL 은 크게 아래의 5가지 요소로 구성됩니다.

scheme://host:port/path?query_string

 예를 들어, 'http://huewu.blog.me/110084219878?Redirect=Log' 라는 URL 은 scheme 는 'http' 이고, host 값은 'huewu.blog.me' 이며, pathPrefix 는 '/110084219878', 그리고 'Redirect=Log' 라는 쿼리 문자열로 구성되어있습니다. 'port' 값은 생략될 수 있는데, 이 경우 스키마에 정의된 프로토콜의 기본 포트가 할당 됩니다. 이 경우에는, 'http' 의 기본 포트인 '80' 입니다.

 

  어찌보면 굉장히 당연하고;;; 기초적인 내용인데;;; 저는 모르고 있었습니다. 안드로이드 개발을 시작한지 거진 3년만에, 얼마전에 참여한 구글 안드로이드 개발자 랩 행사에서 관련내용을 처음 알게 되었네요;; 관련해서 내용을 좀 찾아보니, 2011 구글 I/O 에서 'Android Protips - 전문 안드로이드 개발들을 위한 토픽' 세션을 진행한 'Reto Meier' 도 자신의 세션 중에, "옛날 고려짝 부터 되던 기능인데, 이상하게 주변 개발자들이 이 사실을 잘 모르더라..." 라고 한탄을 하며 소개한 적도 있더군요. 혹시, 제 주변에도 관련내용을 깜박하고 계신 분들이 있지 않을까 싶어서 간단하개 소개해 드렸습니다.

[출처] 안드로이드 Intent Filter 를 통한 인터넷 브라우저와 앱 연동|작성자 휴우

 

 

 

 

=================================

=================================

=================================

 

 

 

 

 

반응형


관련글 더보기

댓글 영역