webentwicklung-frage-antwort-db.com.de

Android Deep Linking mit mehreren Abfrageparametern

Ich versuche, eine Deep-Link-Verbindung zu meiner App herzustellen, 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 mit

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 der URI, der in der Absicht an die Aktivität übergeben wird, ist nur

myCustomScheme://myHost?key=category_parent_id

Alles überspringen nach '&'

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

39
Varun Ramani

Einfach hinzufügen \ Vor & beim testen mit adb unterschreiben.

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

94
Khizar Hayat

Sie können den Shell-Befehl in einfache Anführungszeichen setzen (um das Ändern des Uri-Inhalts zu vermeiden):

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

Für osx/mac Benutzer mit Android studio

Laden Sie adb

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 das '' nicht

1
Tomás Mehdi