Custom URI로 웹에서 앱 호출하기

안드로이드에는 Custom URI라는 연동방식이 존재합니다. 

아래는 이와 관련해서 이전에 포스팅 내용을 참고하시면 됩니다 .


[Android] Custom Scheme 생성에 대한 메모


오늘은 웹브라우저에서 네이티브 앱을 호출하는 방식을 알아보겠습니다. 

관련 자료는 아래의 페이지에 잘 나와 있습니다. 


Android Intents with Chrome


호출받을 네이티브 앱의 Manifest.xml에 아래와 같이 Custom URI를 설정합니다. 

스키마명과 호스트명을 설정해 주는 것이죠. 


        <activity

            android:name=".TargetActivity"

            android:label="@string/app_name" 

            android:theme="@android:style/Theme.Translucent.NoTitleBar"

            android:excludeFromRecents="true"            

            >

            <intent-filter>

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

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

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

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

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

                

                <data android:scheme="myScheme" android:host="myHost" />

            </intent-filter>

        </activity>


기본적으로 Custom URI는 아래와 같은 형식으로 간단히 호출해주면 됩니다. 

같은 앱이든 다른 앱이든 상관이 없죠. 


Uri uri = Uri.parse("myScheme://myHost);

Intent i = new Intent();

i.setAction(Intent.ACTION_VIEW);

i.setData(uri);

startActivity(i);


아래는 이와 동일한 방식으로 단말 내 웹브라우저에서 네이티브 앱을 호출하는 방법입니다. 

서버의 특정 웹페이지 내에 아래와 같은 <A>태그를 작성합니다. 


<a href="intent://myHost/#Intent;scheme=myScheme;package=com.example.myapp;end"> 

링크문구 

</a>


파라미터를 넘겨주고 싶은 경우, 아래와 같이 호스트명 이후에 파라미터를 추가해줍니다. 


<a href="intent://myHost?param1=hello&param2=world/#Intent;scheme=myScheme;package=com.example.myapp;end"> 

링크문구 

</a>


감사합니다.