Я работаю над приложением, которое является браузером, и оно также имеет свои собственные глубокие ссылки в определенных схемах.
Из-за характера этих глубоких ссылок, они должны иметь "http" /Схема «https», поэтому они также могут открываться в браузере, если приложение не установлено.
Эта ситуация не работает, когда ссылки открываются из приложения, которое имеет собственный механизм перенаправления.Пример: открытие из Gmail приводит к тому, что ссылки преобразуются в "http://www.google.com/url?q=..."
". Это происходит только тогда, когда приложение также реализует фильтр намерений:
<intent-filter android:icon="@drawable/ic_browser" android:label="@string/my_browser">
<action android:name="android.intent.action.VIEW" />
<category android:name="android.intent.category.DEFAULT" />
<category android:name="android.intent.category.BROWSABLE" />
<data android:scheme="http" />
<data android:scheme="https" />
</intent-filter>
Если я удалю общее намерение просмотрафильтруйте и оставляйте только специальные фильтры глубоких ссылок, такие как:
<intent-filter>
<action android:name="android.intent.action.VIEW" />
<category android:name="android.intent.category.DEFAULT" />
<category android:name="android.intent.category.BROWSABLE" />
<data
android:host="a.b.c"
android:scheme="http" />
</intent-filter>
Тогда такие приложения, как Gmail, не создают перенаправлений и правильно открывают мое приложение с глубокими ссылками.
ТакВот что я хочу: 1. У меня есть фильтр намерений «браузер», который может открыть ЛЮБУЮ веб-ссылку, чтобы я мог отобразить его в своем приложении 2. У меня есть фильтры намерений «глубокая ссылка», чтобы я мог использовать глубокие ссылки вприложение, которое не открывается в браузере.
Опять же, это работает нормально, пока Gmail и другие не решают создавать URL-адреса перенаправления - я хочу преодолеть это безопасным и надежным способом.