프로그래밍 언어/Android

Android 브라우저에서 사용자 지정 Android 애플리케이션 실행

Rateye 2021. 10. 8. 10:35
728x90
반응형
질문 : Android 브라우저에서 사용자 지정 Android 애플리케이션 실행

누구든지 Android 브라우저에서 내 Android 애플리케이션을 시작하는 방법에 대해 안내해 주시겠습니까?

답변

<data> 요소와 함께 <intent-filter> 를 사용하십시오. 예를 들어 twitter.com에 대한 모든 링크를 처리하려면이를 AndroidManifest.xml <activity> 안에 넣습니다.

<intent-filter>
    <data android:scheme="http" android:host="twitter.com"/>
    <action android:name="android.intent.action.VIEW" />
</intent-filter>

그런 다음 사용자가 브라우저에서 트위터 링크를 클릭하면 작업을 완료하기 위해 사용할 애플리케이션 (브라우저 또는 애플리케이션)을 묻는 메시지가 표시됩니다.

물론 웹 사이트와 앱 간의 긴밀한 통합을 제공하려는 경우 고유 한 스키마를 정의 할 수 있습니다.

<intent-filter>
    <data android:scheme="my.special.scheme" />
    <action android:name="android.intent.action.VIEW" />
</intent-filter>

그런 다음 웹 앱에서 다음과 같은 링크를 넣을 수 있습니다.

<a href="my.special.scheme://other/parameters/here">

그리고 사용자가 클릭하면 앱이 자동으로 실행됩니다 (왜냐하면 my.special.scheme:// 유형의 uris를 처리 할 수있는 유일한 앱이기 때문일 것입니다). 이것의 유일한 단점은 사용자가 앱을 설치하지 않은 경우 심각한 오류가 발생한다는 것입니다. 그리고 확인할 방법이 있는지 잘 모르겠습니다.


편집 : 질문에 답하려면 Uri 객체를 반환하는 getIntent().getData() 그런 다음 Uri.* 메서드를 사용하여 필요한 데이터를 추출 할 수 있습니다. http://twitter.com/status/1234 링크를 클릭했다고 가정 해 보겠습니다.

Uri data = getIntent().getData();
String scheme = data.getScheme(); // "http"
String host = data.getHost(); // "twitter.com"
List<String> params = data.getPathSegments();
String first = params.get(0); // "status"
String second = params.get(1); // "1234"

Activity 어디에서나 위의 onCreate() 에서 수행하고 싶을 것입니다. params.size() Uri 의 경로 세그먼트 수를 가져올 수도 있습니다. 특정 부분을 추출하는 데 사용할 수있는 Uri 메서드는 javadoc 또는 Android 개발자 웹 사이트를 참조하세요.

출처 : https://stackoverflow.com/questions/2958701/launch-custom-android-application-from-android-browser
728x90
반응형