2016-02-26 16 views
21

Próbuję precyzyjnie połączyć moją aplikację i zaimplementowałem następujące elementy w moim AndroidManifest.xml, aby otworzyć odpowiednie działanie.Głębokie połączenie z Androidem z wieloma parametrami zapytania

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

A ja testowania aktywności ADB z użyciem

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

działalności jest otwarcie ale URI, który jest przekazywany do aktywności w zamiarze jest tylko

myCustomScheme://myHost?key=category_parent_id 

Its pomijam wszystko po "&"

Spojrzałem tutaj na SO, ale nie znaleźć coś z wieloma parametrami zapytania.

Każda pomoc zostanie doceniona. :)

Odpowiedz

48

należy dodać znak \ przed & podczas testowania z adb

kopię tego

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

Dzięki! to działało jak urok! –

+0

Moja przyjemność !!!! –

+0

Pracowałem dla mnie. Czy ktoś wie, dlaczego musisz to zrobić? –

5

Można owinąć polecenie powłoki z prostych cudzysłowów (aby uniknąć modyfikując zawartość uri):

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

Po prostu zakodować parametry adresu URL i będzie działać. Może to być błąd google parsowania.

Przed:

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

Po:

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

Na OSX/użytkowników Mac z systemem Android studio

adb obciążenia

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

Sprawdź, czy aplikacja jest uznawane

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

test Deeplink

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

Nie zapomnij ''

Powiązane problemy