Ответ 1
Просто добавьте \
before &
sign при тестировании с 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
Я пытаюсь глубоко связать свое приложение и реализовал следующее в моем 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, но не нашел ничего с несколькими параметрами запроса.
Просто добавьте \
before &
sign при тестировании с 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):
adb shell 'am start -d "myCustomScheme://myHost?key=category_parent_id&value=92&title=test"'
Для пользователей osx/mac с студией Android.
Загрузить adb
export PATH="/Users/your_user/Library/Android/sdk/platform-tools":$PATH
Убедитесь, что приложение распознано
adb shell am start -n com.package/.activities_package_name.MainActivity
Проверка 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'
Не забывайте ''
Просто закодируйте параметры своего 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