uri 클릭시 내 앱이 열리도록 / url 클릭시 내 앱이 열리도록
안드로이드에서 URL click 시 app 이 열리도록 하는 방법
방법은 간단하다.
- 내 app 설정 :AndroidManifest.xml 에 설정 해 주자. 열리기를 원하는 activity 에 intent-filter 를 추가하면 된다.
- page 에 경로 설정 : intent-filter 에 설정한 값으로 url 을 만들어서 link 에 넣는다.
- 내 app 에서 page 의 link 를 눌러서 app 으로 들어올때 설정 : onCreate() 등에서 link 를 통해 activity 가 열릴 때에 대한 parameter 처리를 해준다.
.html
<p><a href="denied://open/test/test2">teetet</a></p>
AndroidManifest.xml
<?xml version="1.0" encoding="utf-8"?>
<manifest... >
...
<application
android:allowBackup="true"
android:icon="@mipmap/ic_launcher"
android:label="@string/app_name"
android:supportsRtl="true"
android:theme="@style/AppTheme" >
...
<activity
android:name=".views.logo.LogoActivity"
android:configChanges="orientation|keyboardHidden|screenSize"
android:label="@string/app_name"
android:noHistory="true"
android:theme="@style/AppTheme.NoActionBar" >
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
<intent-filter>
<data android:scheme="denied" android:host="open" />
<action android:name="android.intent.action.VIEW"/>
<category android:name="android.intent.category.DEFAULT"/>
<category android:name="android.intent.category.BROWSABLE"/>
</intent-filter>
</activity>
...
</application>
</manifest>
LogoActivity.kt
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
setContentView(R.layout.activity_logo)
val logoImage = findViewById(R.id.logo_iv_logo)
_parseUri()
}
private fun _parseUri() {
val data:Uri? = getIntent().getData();
if(data != null){
val scheme = data.getScheme() // "denied"
val host = data.getHost(); // "open"
val params = data.getPathSegments();
val first = params.get(0); // "test"
val second = params.get(1); // "test2"
val test = "$data/$scheme/$host/$params/$first/$second"
}
}
댓글 없음:
댓글 쓰기