Android trả lời URL trong ý định


152

Tôi muốn ý định của mình được đưa ra khi người dùng truy cập vào một url nhất định: ví dụ: thị trường Android thực hiện điều này với http://market.android.com/ url. youtube cũng vậy. Tôi muốn của tôi để làm điều đó quá.


8
Có một câu trả lời tuyệt vời cho câu hỏi này tại stackoverflow.com/questions/2448213/ từ
neu242

2
Có một câu trả lời tốt hơn cho câu hỏi này stackoverflow.com/questions/1609573/ cấp
rds

Câu trả lời:


192

Tôi đã làm nó! Sử dụng <intent-filter>. Đặt nội dung sau vào tệp kê khai của bạ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:host="www.youtube.com" android:scheme="http" />
</intent-filter>

Điều này hoạt động hoàn hảo!


9
Nó không làm việc cho tôi. Bạn có thể vui lòng cho một ví dụ - Liên kết sẽ mở Ứng dụng.
Pascal Klein

7
Tôi muốn phản ứng với "www.youtube.com" nhưng KHÔNG phản ứng với "www.youtube.com/fr /" ... Bạn có biết làm thế nào để làm điều đó không?
Gilbou


1
Không chắc làm thế nào điều này đang làm việc cho toàn bộ thế giới. Chỉ không hoạt động trên chrome và nó luôn mở liên kết trong trình duyệt cho đến khi bạn đặt phần tử "android: pathPrefix". Dù sao câu trả lời không có các giá trị thể loại như được đề cập trong tài liệu. Nếu nó vẫn không hoạt động cho ai đó, hãy tham khảo điều này: stackoverflow.com/a/21727055/2695276 PS: vật lộn trong nhiều ngày vì điều này.
Rajat Sharma

1
Điều quan trọng cần biết là điều này chỉ hoạt động nếu bạn mở liên kết NGOÀI TRỜI của trình duyệt, từ ứng dụng ghi chú hoặc tin nhắn từ whatsapp, Nó đang hoạt động trên kẹo mút
D4rWiNS

10

Bạn có thể cần thêm các hoán vị khác nhau vào bộ lọc ý định của mình để làm cho nó hoạt động trong các trường hợp khác nhau (http / https / ect).

Ví dụ: tôi đã phải làm như sau đối với một ứng dụng sẽ mở khi người dùng mở một liên kết đến các biểu mẫu ổ đĩa google, www.docs.google.com/forms

Lưu ý rằng tiền tố đường dẫn là tùy chọ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>
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.