2015-11-23 18 views
10

Tôi đã viết một ứng dụng mà người dùng sau khi nhấp vào nút mua Người đó chuyển hướng đến Trình duyệt Internet (ví dụ: chrome) và sau khi thanh toán tôi muốn anh ấy quay lại Ứng dụng của tôi (hoạt động của tôi) vì vậy tôi phát hiện ra rằng tôi nên sử dụng Intent-Filter nhưng nó không làm việc cho tôi!Chuyển hướng người dùng từ trình duyệt sang ứng dụng của tôi sau khi mở một URL cụ thể

tôi thêm các mã trong manifest:

<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="returnApp" android:scheme="myapp"></data> 
</intent-filter> 

Và khi tôi mở một url như thế này:

myapp: // returnApp status = 1

ứng dụng của tôi không mở.

Trả lời

11

Hãy thử mở nó như myapp://returnApp/?status=1 (thêm dấu gạch chéo). Điều này xảy ra vì thông số path được xác định với giá trị mặc định là /.

Rất tiếc, bạn không thể đối sánh chính xác cho chuỗi trống. Như trạng thái tài liệu:

Phần đường dẫn của URI phải bắt đầu bằng /.

Nếu bạn đang thực sự cần phải bắt đầu ứng dụng với chính xác url myapp://returnApp?status=1 bạn có thể thêm android:pathPattern=".*" tham số quy định tại khoản dữ liệu của bạn như

<intent-filter> 
    ... 
    <data android:host="returnApp" android:scheme="myapp" android:pathPattern=".*"></data> 
</intent-filter> 

lọc Ý định với dữ liệu android:pathPattern=".*" sẽ phù hợp cho bất kỳ đường dẫn trong đó có một sản phẩm nào.

+0

Nó không hoạt động !! – esmaeil

+1

@esmaeil Tôi đã cập nhật câu trả lời. – pepyakin

+0

@esmaeil, bạn đã cố khởi chạy ứng dụng từ dòng lệnh chưa? Những gì đang được in trong logcat khi bạn thực thi lệnh sau trong shell dòng lệnh 'adb shell am start -a android.intent.action.VIEW -d 'myapp: // returnApp? Status = 1' --debug-log-resolution' ? – pepyakin

Các vấn đề liên quan