Android Tanggapi URL di Intent


152

Saya ingin niat saya diluncurkan ketika pengguna pergi ke url tertentu: misalnya, pasar android melakukan ini dengan http://market.android.com/ url. begitu juga youtube. Saya ingin punyaku melakukannya.


8
Ada jawaban yang bagus untuk pertanyaan ini di stackoverflow.com/questions/2448213/…
— neu242

2
Ada jawaban yang lebih baik untuk pertanyaan ini stackoverflow.com/questions/1609573/...
— rds

Jawaban:


192

Saya melakukannya! Menggunakan <intent-filter>. Masukkan yang berikut ini ke file manifes Anda:

<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="www.youtube.com" android:scheme="http" />
</intent-filter>

Ini bekerja dengan sempurna!


9
Itu tidak bekerja untuk saya. Bisakah Anda memberikan contoh-Tautan yang akan membuka Aplikasi.
— Pascal Klein

7
Saya ingin bereaksi terhadap "www.youtube.com" tetapi TIDAK untuk "www.youtube.com/fr /" ... Ada ide bagaimana saya bisa melakukan itu?
— Gilbou


1
Tidak yakin bagaimana ini bekerja untuk seluruh dunia. Tidak berfungsi di chrome dan selalu membuka tautan di peramban sampai Anda menempatkan elemen "android: pathPrefix". Jawabannya anyways tidak memiliki nilai kategori seperti yang disebutkan dalam dokumentasi. Jika masih tidak bekerja untuk seseorang, lihat ini: stackoverflow.com/a/21727055/2695276 PS: berjuang selama berhari-hari karena hal ini.
— Rajat Sharma

1
Penting untuk diketahui bahwa ini hanya berfungsi jika Anda membuka tautan DI LUAR peramban, dari aplikasi catatan, atau pesan dari whatsapp, Ini berfungsi pada lollipop
— D4rWiNS

10

Anda mungkin perlu menambahkan permutasi yang berbeda ke filter maksud Anda agar berfungsi dalam kasus yang berbeda (http / https / dll).

Misalnya, saya harus melakukan hal berikut untuk aplikasi yang akan terbuka ketika pengguna membuka tautan ke formulir drive Google, www.docs.google.com/forms

Perhatikan bahwa awalan jalur adalah opsional.

        <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="http"
                android:host="docs.google.com"
                android:pathPrefix="/forms"/>
            <data
                android:scheme="http"
                android:host="www.docs.google.com"
                android:pathPrefix="/forms" />

            <data
                android:scheme="https"
                android:host="www.docs.google.com"
                android:pathPrefix="/forms" />

            <data
                android:scheme="https"
                android:host="docs.google.com"
                android:pathPrefix="/forms" />
        </intent-filter>
Dengan menggunakan situs kami, Anda mengakui telah membaca dan memahami Kebijakan Cookie dan Kebijakan Privasi kami.
Licensed under cc by-sa 3.0 with attribution required.