web-dev-qa-db-ja.com

Android複数のクエリパラメータを使用したディープリンク

アプリをディープリンクしようとしています。AndroidManifest.xmlに以下を実装して、適切なアクティビティを開きます。

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

そして、私はadbからアクティビティを使用してテストしています

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

アクティビティは開いていますが、インテントでアクティビティに渡されるURIは

myCustomScheme://myHost?key=category_parent_id

「&」の後のすべてをスキップします

ここでSOを調べましたが、複数のクエリパラメータを持つものは見つかりませんでした。

39
Varun Ramani

Adbでテストする場合は、\記号の前に&を追加するだけです。

これをコピー:

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

シェルコマンドを単純な引用符で囲むことができます(uriコンテンツの変更を避けるため)。

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

Osx/macユーザーの場合Android studio

Adbをロード

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

アプリが認識されていることを確認してください

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

ディープリンクをテストする

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

「」を忘れないでください

1
Tomás Mehdi