Android ตอบสนองต่อ URL ในเจตนา


152

ฉันต้องการความตั้งใจของฉันที่จะเปิดตัวเมื่อผู้ใช้ไปที่ URL ที่แน่นอน: ตัวอย่างเช่นตลาด Android ทำเช่นนี้กับhttp://market.android.com/ urls ดังนั้น youtube ฉันต้องการให้ฉันทำเช่นกัน


8
มีคำตอบที่ดีสำหรับคำถามนี้ที่stackoverflow.com/questions/2448213/…
neu242

2
มีคำตอบที่ดีกว่าสำหรับคำถามนี้stackoverflow.com/questions/1609573/…
rds

คำตอบ:


192

ฉันทำมัน! <intent-filter>การใช้ ใส่สิ่งต่อไปนี้ในไฟล์รายการของคุณ:

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

มันทำงานได้อย่างสมบูรณ์แบบ!


9
มันใช้งานไม่ได้สำหรับฉัน คุณช่วยระบุตัวอย่างลิงก์ที่จะเปิดแอปพลิเคชันได้ไหม
Pascal Klein

7
ฉันต้องการตอบสนองต่อ "www.youtube.com" แต่ไม่ใช่เพื่อ "www.youtube.com/fr /" ... ความคิดใดที่ฉันสามารถทำได้
Gilbou


1
ไม่แน่ใจว่าสิ่งนี้ทำงานได้อย่างไรสำหรับทั้งโลก ไม่สามารถใช้งานกับ Chrome ได้และจะเปิดลิงก์ในเบราว์เซอร์เสมอจนกว่าคุณจะวางองค์ประกอบ "android: pathPrefix" คำตอบยังไม่มีค่าหมวดหมู่ตามที่กล่าวไว้ในเอกสารประกอบ หากยังไม่ได้ผลสำหรับใครบางคนให้อ้างอิงสิ่งนี้โปรด: stackoverflow.com/a/21727055/2695276 PS: ดิ้นรนหลายวัน
Rajat Sharma

1
สิ่งสำคัญคือต้องรู้ว่าสิ่งนี้ใช้ได้เฉพาะเมื่อคุณเปิดลิงก์นอกเบราว์เซอร์จากแอพโน้ตหรือข้อความจาก whatsapp มันทำงานกับ lollipop
D4rWiNS

10

คุณอาจต้องเพิ่มวิธีเรียงสับเปลี่ยนที่แตกต่างกันในตัวกรองเจตนาเพื่อให้มันทำงานได้ในหลายกรณี (http / https / ect)

ตัวอย่างเช่นฉันต้องทำสิ่งต่อไปนี้สำหรับแอปที่จะเปิดขึ้นเมื่อผู้ใช้เปิดลิงก์ไปยังแบบฟอร์ม Google ไดรฟ์ www.docs.google.com/forms

โปรดทราบว่าคำนำหน้าเส้นทางเป็นทางเลือก

        <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>
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.