2016-02-26 14 views
21

Tôi đang cố gắng liên kết sâu ứng dụng của mình và đã triển khai thực hiện các thao tác sau trong tệp AndroidManifest.xml của mình để mở hoạt động thích hợp.Liên kết sâu Android với nhiều tham số truy vấn

<activity 
    android:name=".ui.activities.MyActivity" 
    android:label="@string/title_activity" 
    android:screenOrientation="portrait"> 
    <!-- ATTENTION: This intent was auto-generated. Follow instructions at 
    https://g.co/AppIndexing/AndroidStudio to publish your Android app deep links. --> 
    <intent-filter> 
     <action android:name="android.intent.action.VIEW" /> 

     <category android:name="android.intent.category.DEFAULT" /> 
     <category android:name="android.intent.category.BROWSABLE" /> 
     <!-- ATTENTION: This data URL was auto-generated. We recommend that you use the HTTP scheme. 
     TODO: Change the host or pathPrefix as necessary. --> 
     <data 
      android:host="myHost" 
      android:scheme="myCustomScheme" /> 
    </intent-filter> 
</activity> 

Và tôi đang thử nghiệm các hoạt động từ adb sử dụng

adb shell am start -W -a android.intent.action.VIEW -d "myCustomScheme://myHost?key=category_parent_id&value=92&title=test" com.myApp.android 

Các Hoạt động được mở nhưng URI được truyền cho các hoạt động trong mục đích duy nhất là

myCustomScheme://myHost?key=category_parent_id 

của nó bỏ qua mọi thứ sau '&'

Tôi đã tra cứu ở đây trên SO nhưng không tìm bất kỳ thứ gì có nhiều tham số truy vấn.

Mọi trợ giúp sẽ được đánh giá cao. :)

Trả lời

48

xin vui lòng thêm \ trước & dấu khi thử nghiệm với adb

bản sao này

adb shell am start -W -a android.intent.action.VIEW -d "myCustomScheme://myHost?key=category_parent_id\&value=92\&title=test" com.myApp.android

+0

Cảm ơn! làm việc như quyến rũ! –

+0

Niềm vui của tôi !!!! –

+0

Làm việc cho tôi. Có ai biết tại sao bạn cần phải làm điều này? –

5

Bạn có thể quấn lệnh shell với dấu ngoặc kép đơn giản (để tránh sửa đổi nội dung uri):

adb shell 'am start -d "myCustomScheme://myHost?key=category_parent_id&value=92&title=test"' 
-1

Chỉ cần mã hóa các thông số url của bạn và nó sẽ hoạt động. Có thể đó là lỗi phân tích cú pháp của google.

Trước:

adb shell am start -W -a android.intent.action.VIEW -d "myCustomScheme://myHost?key=category_parent_id&value=92&title=test" com.myApp.android 

Sau:

adb shell am start -W -a android.intent.action.VIEW -d "myCustomScheme://myHost?key%3Dcategory_parent_id%26value%3D92%26title%3Dtest" com.myApp.android 
1

Đối với OSX/người dùng mac với studio android

tải adb

export PATH="/Users/your_user/Library/Android/sdk/platform-tools":$PATH 

Kiểm tra xem các ứng dụng được công nhận

adb shell am start -n com.package/.activities_package_name.MainActivity 

Kiểm tra liên kết sâu

adb shell 'am start -W -a android.intent.action.VIEW -d "myCustomScheme://myHost?key=category_parent_id\&value=92\&title=test" com.myApp.android' 

Đừng quên ''

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