Android 具有多个查询参数的深度链接
Android Deep Linking with multiple query parameters
我正在尝试深入 link 我的应用程序并在我的 AndroidManifest.xml 中实现了以下内容以打开正确的 activity.
<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 测试 activity
adb shell am start -W -a android.intent.action.VIEW -d "myCustomScheme://myHost?key=category_parent_id&value=92&title=test" com.myApp.android
Activity 正在打开,但在意图中传递给 activity 的 URI 仅为
myCustomScheme://myHost?key=category_parent_id
它会跳过“&”之后的所有内容
我确实在这里查找过 SO,但没有找到任何具有多个查询参数的内容。
使用 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
可以用单引号将shell命令括起来(避免修改uri内容):
adb shell 'am start -d "myCustomScheme://myHost?key=category_parent_id&value=92&title=test"'
只需对您的 url 参数进行编码即可。
可能是 google 的解析错误。
之前:
adb shell am start -W -a android.intent.action.VIEW -d "myCustomScheme://myHost?key=category_parent_id&value=92&title=test" com.myApp.android
之后:
adb shell am start -W -a android.intent.action.VIEW -d "myCustomScheme://myHost?key%3Dcategory_parent_id%26value%3D92%26title%3Dtest" com.myApp.android
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'
不要忘记“ ”
我正在尝试深入 link 我的应用程序并在我的 AndroidManifest.xml 中实现了以下内容以打开正确的 activity.
<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 测试 activityadb shell am start -W -a android.intent.action.VIEW -d "myCustomScheme://myHost?key=category_parent_id&value=92&title=test" com.myApp.android
Activity 正在打开,但在意图中传递给 activity 的 URI 仅为
myCustomScheme://myHost?key=category_parent_id
它会跳过“&”之后的所有内容
我确实在这里查找过 SO,但没有找到任何具有多个查询参数的内容。
使用 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
可以用单引号将shell命令括起来(避免修改uri内容):
adb shell 'am start -d "myCustomScheme://myHost?key=category_parent_id&value=92&title=test"'
只需对您的 url 参数进行编码即可。 可能是 google 的解析错误。
之前:
adb shell am start -W -a android.intent.action.VIEW -d "myCustomScheme://myHost?key=category_parent_id&value=92&title=test" com.myApp.android
之后:
adb shell am start -W -a android.intent.action.VIEW -d "myCustomScheme://myHost?key%3Dcategory_parent_id%26value%3D92%26title%3Dtest" com.myApp.android
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'
不要忘记“ ”