Я пытаюсь добавить глубокую ссылку на свое приложение. Я добавил два фильтра намерений в один из моих действий, один фильтр для схемы «http» и другой для моей пользовательской схемы (я использую «пример»). Я добавил один фильтр намерения по схеме, основанный на информации в этом SO (Deep-linking intent does not work), так что я могу обрабатывать типы ссылок example://test
и http://www.example.com/test
.Работа с глубоким связыванием Android работает в ADB, но не в браузере
Вот мой XML:
<activity
android:name="com.myapp.myapp.SplashActivity"
android:screenOrientation="portrait"
android:theme="@android:style/Theme.Holo.Light.NoActionBar.Fullscreen" >
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
<intent-filter android:label="Intent Filter label">
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.DEFAULT" />
<category android:name="android.intent.category.BROWSABLE" />
<category android:name="android.intent.category.LAUNCHER" />
<!-- Accepts URIs that begin with "http://www.example.com/test2” -->
<data android:scheme="http"
android:host="www.example.com"
android:pathPrefix="/test2" />
</intent-filter>
<intent-filter android:label="Intent Filter label">
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.DEFAULT" />
<category android:name="android.intent.category.BROWSABLE" />
<category android:name="android.intent.category.LAUNCHER" />
<!-- Accepts URIs that begin with "example://test2” -->
<data android:scheme="example"
android:host="test2" />
</intent-filter>
</activity>
Они загружаются правильно, когда я проверяю в АБР:
adb shell am start -W -a android.intent.action.MAIN -d "example://test2" com.myapp.myapp
возвращает
Starting: Intent { act=android.intent.action.MAIN dat=example://test2 pkg=com.myapp.myapp } Status: ok Activity: com.myapp.myapp/com.app.myapp.SplashActivity ThisTime: 357 TotalTime: 357 Complete
Однако, я абсолютно ничего в браузере. Когда я пробую это в браузере: «example://test2
» в FF я получаю «couldn't find an app to open this link
», а в Chrome и родном браузере он открывает новый поиск Google для «example://test2
».
Когда я пробую другой стиль: «http://www.example.com/test2
» он просто пытается перейти на эту веб-страницу во всех трех браузерах.
Я развертываю приложение на своем телефоне из Android Studio. Я также пытался создать отладочную APK, отправить ее на свой телефон и установить. Тот же результат для обоих. Что я делаю неправильно? Я следовал за гидом (https://developer.android.com/training/app-indexing/deep-linking.html) до буквы, насколько я могу судить. Должно ли мое приложение находиться в магазине для глубокой привязки к работе?