Chrome Custom Tabs에서 강제로 Chrome으로 표시하는 방법

3405 단어 안드로이드Chrome

개요



예를 들어 AndroidManifest.xml <intent-filter>
AndroidManifest.xml
<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="example.com"
        android:scheme="https" />
</intent-filter>

정의한 경우 Chrome 맞춤 탭에서 https://example.com/ 페이지를 보려고하면
intent-filter의 조건과 일치하기 때문에,



이런 식으로 Chrome 이외의 후보가 표시됩니다.

이 후보 모달을 표시하지 않고 Chrome에서 강제로 표시하는 방법입니다.

방법



MainActivity.kt
val builder: CustomTabsIntent.Builder = CustomTabsIntent.Builder()
val customTabsIntent: CustomTabsIntent = builder.build()

if (packageManager.getLaunchIntentForPackage("com.android.chrome") != null) {
    customTabsIntent.intent.setPackage("com.android.chrome")
}

customTabsIntent.launchUrl(this, Uri.parse(url))
setPackage()에서 Chrome 패키지 이름을 지정하면됩니다.

당신을 위해 getLaunchIntentForPackage()에서 Chrome이 있는지 확인했습니다.
↑ 에서는 존재하지 않았을 때의 처리는 아무것도 실시하고 있지 않습니다만 본래라면 에러 메세지를 표시하는 등 해 주는 편이 좋을까 생각합니다.

이상입니다.

참고



[stackoverrun] android - Chrome의 맞춤 탭 및 인텐트 필터

좋은 웹페이지 즐겨찾기