Что такое глубокие ссылки?
Глубокие ссылки Android открывают определенную страницу в приложении и при желании передают в нее данные. Разработчики могут найти глубокие ссылки, особенно полезные для таких действий, как щелчок уведомления или отправка ссылки на приложение по электронной почте.
Давайте возьмем почтовый клиент в качестве примера. Когда пользователь нажимает на уведомление о полученном им электронном письме, он открывает глубокую ссылку, которая приводит его к электронному письму в приложении. Наконец, что не менее важно, глубокие ссылки также позволяют Google индексировать ваше приложение и ссылаться на определенные разделы вашего приложения в поиске. Глубокая ссылка отображается как результат поиска в Google и может привести пользователя к определенному разделу вашего приложения.
Реализация глубоких ссылок
Чтобы добавить глубокую ссылку на ваше приложение, вы должны добавить ее в файл манифеста Android в качестве фильтра намерений. Посмотрите на следующий пример.
|
01
02
03
04
05
06
07
08
09
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
|
<application android:allowBackup=»true» android:icon=»@mipmap/ic_launcher» android:label=»@string/app_name»
android:supportsRtl=»true» android:theme=»@style/AppTheme»>
<activity android:name=».MainActivity» android:label=»@string/app_name» android:theme=»@style/AppTheme.NoActionBar»>
<intent-filter>
<!— Notice that the MAIN activity already has an intent-filter.
A deep link because its action is not a VIEW—>
<action android:name=»android.intent.action.MAIN» />
<category android:name=»android.intent.category.LAUNCHER» />
</intent-filter>
</activity>
<activity android:name=»com.example.matthew.deeplinks.LinkActivity» android:label=»@string/title_activity_link»
android:theme=»@style/AppTheme.NoActionBar»>
<intent-filter>
<!— Sets the intent action to view the activity —>
<action android:name=»android.intent.action.VIEW» />
<!— Allows the link to be opened from a web browser —>
<category android:name=»android.intent.category.BROWSABLE» />
<!— Allows the deep link to be used without specifying the app name —>
<category android:name=»android.intent.category.DEFAULT» />
<!— URI tutsplus://deeplink —>
<data android:scheme=»tutsplus» android:host=»deeplink»/>
<!— URI http://www.mydeeplink.com —>
<data android:scheme=»http» android:host=»www.mydeeplink.com»/>
</intent-filter>
</activity>
</application>
|
Теги <action> и <data> являются обязательными. Тег <action> выбирает, что происходит в приложении при нажатии на ссылку. Тег <data> указывает, какие URI допустимы в качестве глубоких ссылок на страницу.
В приведенном выше примере переход по адресу http://www.mydeeplink.com или tutsplus: // deeplink переводит пользователя в действие LinkActivity . Теги <category> определяют свойства глубокой ссылки. Обратите внимание, что вам нужно создать отдельный фильтр намерений для каждой схемы URI и каждого действия.
Вы можете создать несколько ссылок на один и тот же вид деятельности. Чтобы дифференцировать их, вам нужно проанализировать данные намерения в вашем коде, чтобы дифференцировать ссылки. Обычно это делается в onCreate() , читая данные и действуя соответствующим образом.
|
01
02
03
04
05
06
07
08
09
10
|
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_link);
Toolbar toolbar = (Toolbar) findViewById(R.id.toolbar);
setSupportActionBar(toolbar);
Intent in = getIntent();
Uri data = in.getData();
// Do something with data.
}
|
Тестирование Deep Links
Android Studio позволяет легко тестировать глубокие ссылки. Нажмите Run> Edit Configurations, чтобы редактировать конфигурацию проекта.


Откройте вкладку General в верхней части и введите URI в поле Deep Link в разделе Launch Options . При запуске приложения с помощью Android Studio оно попытается открыть указанный URI.
Вывод
Теперь, когда вы знаете, как создавать и использовать глубокие ссылки, вы можете открыть новые точки входа для пользователей для взаимодействия с вашим приложением. Пользователи могут использовать поиск Google на своих телефонах для поиска страниц в вашем приложении, а вы можете создавать уведомления, которые открывают определенную страницу в вашем приложении при нажатии.