Android Deep Linking mit mehreren Abfrageparametern

Lesezeit: 3 Minuten

Benutzer-Avatar
Varun Ramani

Ich versuche, meine App tief zu verlinken, und habe Folgendes in meiner AndroidManifest.xml implementiert, um die richtige Aktivität zu öffnen.

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

Und ich teste die Aktivität von adb using

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

Die Aktivität wird geöffnet, aber nur der URI, der in der Absicht an die Aktivität übergeben wird

myCustomScheme://myHost?key=category_parent_id

Es überspringt alles nach ‘&’

Ich habe hier auf SO nachgeschlagen, aber nichts mit mehreren Abfrageparametern gefunden.

Benutzer-Avatar
Khizar Hayat

Einfach hinzufügen \ Vor & Zeichen beim Testen mit adb.

Kopier das:

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

  • Hat für mich funktioniert. Weiß jemand warum man das machen muss?

    – Vineet Manohar

    5. Juli 2016 um 22:11 Uhr

  • Auch wenn die title -Feld Leerzeichen hat, dann stellen Sie ihnen auch Backslashes voran.

    – Gagan

    12. November 2017 um 17:05 Uhr

  • Mir fehlte die \ Vor dem &. Danke, Alter!

    – Joaquin Iurchuk

    5. Februar 2019 um 18:37 Uhr


  • Wenn ich den Abfrageparameter in der URL habe, zeigt das Android-System meine App nicht in Vorschlägen an, aber ohne Abfrageparameter funktioniert es. Bitte, was könnte helfen, das Problem zu sein. URL: “myCustomScheme://myHost?key=xxx”

    – Benutzer448250

    3. Mai 2019 um 3:28 Uhr

  • In der realen Welt ist es entweder “” oder \ – niemals beides – was hat sich Google dabei gedacht ?

    – Schlitz

    28. Juni 2021 um 12:34 Uhr

Sie können den Shell-Befehl in einfache Anführungszeichen setzen (um eine Änderung des URI-Inhalts zu vermeiden):

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

  • Dies sollte die akzeptierte Antwort sein, da der URI nicht geändert oder codiert werden muss

    – Paul T.

    11. Dezember 2019 um 23:30 Uhr

  • Was ist mit einem Link in der E-Mail?

    – Benutzer924

    29. Juli 2021 um 7:03 Uhr

Für OSX / Mac-Benutzer mit Android Studio

adb laden

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

Überprüfen Sie, ob die App erkannt wird

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

Deeplink testen

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

Vergiss nicht das ‘ ‘

  • von E-Mail wird es auch übersprungen

    – Benutzer924

    29. Juli 2021 um 7:02 Uhr

Codieren Sie einfach Ihre URL-Parameter und es wird funktionieren. Es könnte ein Parsing-Bug von Google sein.

Vor:

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

Nach:

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

1256780cookie-checkAndroid Deep Linking mit mehreren Abfrageparametern

This website is using cookies to improve the user-friendliness. You agree by using the website further.

Privacy policy