Невозможно передать глубокие ссылки с параметрами - Android - PullRequest
1 голос
/ 12 июня 2019

Я пытаюсь передать параметры глубоким ссылкам в Android, и это не работает.

Я указал переменную hostName в файле app/build.gradle, чтобы различать UAT и рабочие URL-адреса.На эту переменную hostName ссылаются в AndroidManifest.xml примерно так:

<activity
            android:name=".ui.MyActivity"
            android:theme="@style/MyTheme"
            android:configChanges="orientation"
            android:windowSoftInputMode="adjustResize">

            <intent-filter>
                <action android:name="android.intent.action.VIEW" />
                <category android:name="android.intent.category.DEFAULT" />
                <category android:name="android.intent.category.BROWSABLE" />
                <!-- deep links for home page. -->
                <data
                    android:scheme="https"
                    android:host="${hostName}"
                    android:pathPrefix="/login.jsp?signup=true" />
            </intent-filter>
        </activity>

Я пытаюсь использовать adb для проверки на глубокие ссылки, например:
adb.exe shell am start -W -a android.intent.action.VIEW -d "https://www.mywebsite.co.in/login.jsp?signup=true" com.myapp.ui.MyActivity

Ошибка, которую я получаю:

Starting: Intent { act=android.intent.action.VIEW dat=https://www.mywebsite.co.in/... pkg=com.myapp.android.alpha }
Error: Activity not started, unable to resolve Intent { act=android.intent.action.VIEW dat=https://www.mywebsite.co.in/... flg=0x10000000 pkg=com.myapp.android.alpha }  

Я прочитал несколько подобных вопросов здесь, на SO, и все они предлагают экранировать специальные символы.Но это не сработало в этом случае.

Любые идеи по решению этой проблемы будут приветствоваться.

Ответы [ 2 ]

0 голосов
/ 12 июня 2019

Строка запроса ?signup=true не является частью пути.Вы не можете фильтровать строки запроса.

0 голосов
/ 12 июня 2019

Недопустимый android:pathPrefix в вашем AndroidManifest.xml.
Он должен содержать только элемент пути, а не запрос:

android:pathPrefix="/login.jsp"
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...