Android Niyette URL'ye Yanıt Ver


152

Kullanıcı belirli bir URL'ye gittiğinde niyetimin başlatılmasını istiyorum: örneğin, android pazarı bunu http://market.android.com/ urls ile yapıyor. youtube da öyle. Benim de bunu yapmasını istiyorum.



2
Bu soruya daha iyi bir yanıt var. Stackoverflow.com/questions/1609573/…
rds

Yanıtlar:


192

Yaptım! Kullanma <intent-filter>. Manifest dosyanıza aşağıdakileri ekleyin:

<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>

Mükemmel çalışıyor!


9
Benim için çalışmıyor. Lütfen Uygulamayı açacak bir örnek-Bağlantı verebilir misiniz?
Pascal Klein

7
"Www.youtube.com" a tepki vermek istiyorum ama "www.youtube.com/fr /" a DEĞİLDİR ... Bunu nasıl yapabileceğime dair bir fikrin var mı?
Gilbou


1
Bunun tüm dünya için nasıl çalıştığından emin değilim. Sadece krom üzerinde çalışmaz ve siz "android: pathPrefix" öğesini yerleştirene kadar her zaman bağlantıyı tarayıcıda açar. Cevap yine de dokümantasyonda belirtildiği gibi kategori değerlerine sahip değildir. Hala birisi için işe yaramıyorsa, lütfen şu adrese başvurun: stackoverflow.com/a/21727055/2695276 PS: bunun üzerinde günlerce mücadele etti.
Rajat Sharma

1
Bunun sadece bir tarayıcının dışında, notlar uygulamasından veya
whatsapp'tan

10

Farklı durumlarda (http / https / vb.) Çalışmasını sağlamak için niyet filtrenize farklı permütasyonlar eklemeniz gerekebilir.

Örneğin, kullanıcı google sürücü formlarına bir bağlantı açtığında açılacak bir uygulama için aşağıdakileri yapmak zorunda kaldım, www.docs.google.com/forms

Yol önekinin isteğe bağlı olduğunu unutmayın.

        <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>
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.