В этом руководстве по миграции основное внимание уделяется использованию ссылок на приложения и универсальных ссылок , а также дополнительно использованию хостинга Firebase для размещения файлов связи вашего приложения с сайтом.
Эта миграция заменяет следующие функции Firebase Dynamic Links:
Особенность | Динамические ссылки Firebase | Ссылки на приложения/универсальные ссылки |
---|---|---|
Направляйте пользователей в магазин, соответствующий их устройству, одним нажатием ссылки. | ★ | |
Предоставьте пользователям возможность продолжить путешествие после загрузки и установки вашего приложения с помощью отложенной глубокой ссылки. | ★ | |
Предоставьте пользователям контекстный опыт, используя контент с глубокими ссылками в вашем приложении (если оно уже установлено). | ||
Предоставление аналитических данных, связанных с событиями щелчков по динамическим ссылкам. | ||
Предоставить возможность создавать URL-адреса коротких ссылок. |
Если для миграции вам по-прежнему нужны другие функции Firebase Dynamic Link, которые не поддерживаются в этом руководстве, см. другие сценарии миграции в документации по часто задаваемым вопросам об устаревании динамических ссылок .
Предположим, у вас есть динамическая ссылка Firebase, которая выглядит следующим образом:
Пример динамической ссылки | |
---|---|
Имя ссылки | Добро пожаловать на сайт example.com. |
Глубокая ссылка | https://example.web.app/welcome |
Android-приложение | com.example.android |
приложение Apple | com.example.ios |
Длинная динамическая ссылка | https://example.page.link/?link=https://example.web.app/welcome&apn=com.example.android&isi=123456789&ibi=com.example.iuos |
Короткая динамическая ссылка | https://example.page.link/m9Mm |
Цель этого руководства по миграции — заменить динамические ссылки Firebase следующим образом:
https://example.page.link/m9Mm
С глубокими ссылками App Link/Universal Link, которые выглядят следующим образом:
https:// your-project-domain .web.app/welcome
Обратите внимание, что глубокая ссылка App Link/Universal Link предоставит вашим пользователям следующее:
- Глубокая ссылка, по которой они могут нажать, чтобы открыть ваше приложение, когда оно уже установлено.
- Продолжение пользовательского пути, направляющее их к определенной части вашего приложения при его открытии.
Однако глубокая ссылка App Link/Universal Link не будет обеспечивать следующие действия для ваших пользователей (что ранее делало Firebase Dynamic Links):
- Направление пользователей в магазин, соответствующий их устройству, для загрузки и установки вашего приложения.
- Обеспечение продолжения пользовательского пути после загрузки, установки и первого открытия приложения.
Обратите внимание на различия в поведении и функциональности этих ссылок на приложения/универсальных ссылок по сравнению с динамическими ссылками Firebase, указанные в таблице выше.
Прежде чем начать
Firebase Dynamic Links использует ссылки на приложения (на Android) и универсальные ссылки (на iOS) в своей собственной базовой реализации, чтобы обеспечить функциональность глубоких ссылок после того, как ваше приложение уже установлено.
В этом руководстве рассказывается, как создавать собственные ссылки на приложения и универсальные ссылки с помощью хостинга Firebase, чтобы заменить ту часть функциональности, предоставляемую динамическими ссылками Firebase, при переносе динамических ссылок Firebase в новое решение для миграции ссылок на приложения или универсальных ссылок.
Для завершения миграции вам потребуется следующая информация:
- Динамические ссылки Firebase, которые вы собираетесь перенести.
- Параметры URL-адреса глубокой ссылки, включенные в ваши динамические ссылки.
- Домен, который вы планируете использовать для замены предыдущего домена Firebase Dynamic Links (если применимо).
Вы можете использовать руководство «Экспорт метаданных динамических ссылок», чтобы экспортировать существующие метаданные ссылок и получить информацию, указанную выше.
Обзор этапов миграции
Предоставьте новый домен (если у вас его еще нет, который вы хотите использовать) для размещения файлов конфигурации App Link/Universal Link с помощью хостинга Firebase.
Создайте и разместите файлы конфигурации App Link/Universal Link в своем домене хостинга.
Создайте новые ссылки на приложения или универсальные ссылки, соответствующие схеме глубоких ссылок, используемой в ваших динамических ссылках Firebase.
Обновите свои приложения Android/iOS и код приложения, чтобы получать глубокие ссылки.
Тестирование интеграции App Links/Universal Links.
Замените опубликованные или общие динамические ссылки Firebase ссылками на приложения и универсальными ссылками.
Первый шаг будет общим для потоков миграции App Links и Universal Link. Остальное будет зависеть от платформы, поэтому перейдите к разделу руководства ниже в зависимости от того, какую платформу вы хотите перенести в первую очередь.
Предоставьте новый домен для размещения файлов конфигурации App Link/Universal Link с помощью хостинга Firebase.
Выберите домен
Первый шаг — выбрать домен, который вы хотели бы использовать для своих ссылок на приложения или универсальных ссылок. Это будет домен, который будет использоваться для новых ссылок, которыми вы поделитесь со своими пользователями.
Если вы используете хостинг Firebase , субдомены проекта в формате your-project-domain .web.app
или your-project-domain .firebaseapp.com
автоматически предоставляются бесплатно. При желании вы также можете использовать личный домен с хостингом Firebase или без него для размещения файлов конфигурации App Link / Universal Link.
Настройте хостинг Firebase
Далее вам нужно будет настроить экземпляр хостинга Firebase .
К тому времени, как вы закончите настройку экземпляра хостинга Firebase, у вас будет домен, аналогичный your-project-domain .web.app
`, или собственный домен, если вы предпочитаете.
Этапы миграции для ссылок на приложения Android
Создайте и разместите файлы конфигурации App Link на новом домене хостинга.
Чтобы использовать ссылки на приложения, вам необходимо разместить файл конфигурации, который поможет установить безопасную связь между доменом, используемым в ваших ссылках, и вашим приложением. Для ссылок на приложения это файл assetlinks.json
.
Действия по созданию и размещению файла assetslinks.json
Файл assetlinks.json
позволяет нам предоставить список авторизованных приложений, которые могут обрабатывать содержимое веб-домена, который мы будем использовать для наших ссылок на приложения. Сам файл assetslinks.json необходимо разместить в корне веб-домена по пути: /.well-known
.
Для завершения этой конфигурации выполните следующие действия:
Создайте папку
.well-known
в общей папке в корневом каталоге хостинга Firebase.Создайте файл с именем
assetlinks.json
в папке.well-known
.Скопируйте следующее содержимое в файл assetslinks.json, обращая внимание на значение каждого поля ниже:
[{ "relation": ["delegate_permission/common.handle_all_urls"], "target": { "namespace": "android_app", "package_name": "com.example.android", "sha256_cert_fingerprints": ["01:23:45:67:89:AB:CD:EF:01:23:45:67:89:AB:CD:EF:01:23:45:67:89:AB:CD:EF:01:23:45:67:89:AB:CD:EF"] } }]
-
namespace
— относится к имени приложения, которое вы хотите предоставить. -
package_name
— относится к идентификатору приложения, объявленному в файлеbuild.gradle
приложения. -
sha256_cert_fingerprints
— относится к отпечатку SHA256 файла хранилища ключей, который вы используете для подписи приложения.
Вы можете использовать файл debug.keystore, используемый Android Studio, для создания записи sha256_cert_fingerprints в целях отладки. Вы можете найти файл по адресу
/Users/<username>/.android/debug.keystore
в Mac и Linux иC:\Users\<username>\.android\debug.keystore
в Windows.Из этого хранилища ключей вы можете получить значение SHA256 с помощью инструмента ключей.
Дополнительные инструкции по выполнению этого шага см. в этом разделе документации по ссылкам на приложения.
Альтернативно вы также можете использовать Помощник по ссылкам на приложения в Android Studio, чтобы сгенерировать содержимое файла assetslinks.json и настроить приложение для обработки ссылок на приложения.
-
Обновите файл firebase.json, чтобы проиндексировать его для хостинга.
"headers": [ { "source": "/.well-known/assetlinks.json", "headers": [ { "key": "Content-Type", "value": "application/json" } ] } ]
Теперь, когда у нас есть файл assetslinks.json, запустите
firebase deploy
, чтобы разместить изменения.Обратите внимание, что для запуска указанной выше команды развертывания вам потребуется установить интерфейс командной строки Firebase .
firebase deploy --only hosting
Проверьте файл assetslinks.json, перейдя по адресу
https:// your-project-domain .web.app/.well-known/assetlinks.json
Создайте новые ссылки на приложения, соответствующие схеме глубоких ссылок, используемой в ваших динамических ссылках Firebase.
На этом этапе вы воссоздадите глубокие ссылки из своих динамических ссылок Firebase, используя обычные URL-адреса глубоких ссылок, соответствующие новому домену, который вы создали для своих ссылок на приложения.
Например, предположим, что у вас есть следующая динамическая ссылка Firebase:
Пример динамической ссылки | |
---|---|
Имя ссылки | Добро пожаловать на сайт example.com. |
Глубокая ссылка | https://example.web.app/welcome |
Android-приложение | com.example.android |
приложение Apple | com.example.ios |
Длинная динамическая ссылка | https://example.page.link/?link=https://example.web.app/welcome&apn=com.example.android&isi=123456789&ibi=com.example.iuos |
Короткая динамическая ссылка | https://example.page.link/m9Mm |
В этом случае вы должны извлечь параметр глубокой ссылки, то есть https://example.web.app/welcome, и теперь использовать его в качестве параметра App Link для своего приложения.
Вам нужно будет повторить этот процесс для каждой динамической ссылки Firebase, на которую вы хотите перейти с помощью ссылок на приложения или универсальных ссылок, и реплицировать использованную вами схему глубоких ссылок.
Например, см. следующий набор коротких ссылок Firebase Dynamic Links, параметров глубоких ссылок и перенесенных значений глубоких ссылок:
Короткая ссылка | Параметр глубокой ссылки | Перенесенная глубокая ссылка |
---|---|---|
yourapp.page.link/добро пожаловать | https://example.com/добро пожаловать | yourapp.web.app/добро пожаловать |
yourapp.page.link/c7sn | https://example.com/main/?p=23&t=1 | yourapp.web.app/main/?p=23&t=1 |
yourapp.page.link/social | https://example.com/friendinvite/?add=1 | yourapp.web.app/friendinvite/?add=1 |
Затем вам нужно будет заменить все экземпляры динамических ссылок Firebase, которые были опубликованы или предоставлены к совместному использованию, новыми перенесенными глубокими ссылками, чтобы пользователи могли нажимать на эти ссылки на приложения вместо предыдущих динамических ссылок Firebase.
Обновите приложение Android и код приложения, чтобы получать глубокие ссылки.
Следующим шагом после выбора домена, выбора схемы глубоких ссылок и переноса динамических ссылок Firebase в ссылки на приложения является обновление вашего приложения Android и кода приложения для получения новых глубоких ссылок.
Мы рекомендуем следовать полной документации по ссылкам на приложения здесь или, в качестве альтернативы, руководству Android Studio по настройке вашего приложения для обработки глубоких ссылок, но основные шаги включают в себя:
- Определение того, какие действия должны обрабатывать соответствующие глубокие ссылки.
- Добавление фильтра намерений для этих действий в файл AndroidManifest.xml.
- Получение глубокой ссылки в коде приложения ваших действий
Допустим, вы хотите использовать MainActivity для обработки некоторых глубоких ссылок. Для этого вам нужно будет добавить следующий фильтр намерений в MainActivity в файле AndroidManifest.xml:
<activity android:name=".MainActivity"
android:exported="true">
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
<intent-filter android:autoVerify="true">
<action android:name="android.intent.action.VIEW" />
<category android:name="android.intent.category.DEFAULT" />
<category android:name="android.intent.category.BROWSABLE" />
<data android:host="example.web.app" android:scheme="http"
android:pathPrefix="/welcome" />
<data android:host="example.web.app" android:scheme="https"
android:pathPrefix="/welcome" />
</intent-filter>
</activity>
На этом этапе вы указываете, что MainActivity является местом назначения для обработки глубоких ссылок из домена wxample.web.app и включает префикс пути /welcome. Обратите внимание, что вам также потребуется указать атрибут android:autoVerify="true", который позволит вам назначить ваше приложение обработчиком по умолчанию для данного типа ссылки.
Наконец, вам нужно будет добавить код в свою MainActivity, чтобы получить данные о глубоких ссылках и использовать их для улучшения работы глубоких ссылок в вашем приложении. Это похоже на логику, которую вы, возможно, уже запрограммировали в своем приложении при интеграции с Firebase Dynamic Links.
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
setContentView(R.layout.main)
val data: Uri? = intent?.data
val toast = Toast.makeText(this, data, duration)
toast.show()
}
Тестирование ссылок на приложения
Вы можете протестировать только что созданные ссылки на приложения, запустив приложение на физическом устройстве или в эмуляторе Android .
Вам нужно будет создать интерактивную ссылку, используя домен, настроенный для ваших ссылок на приложения, а затем щелкнуть эту ссылку, чтобы убедиться, что она открывается в вашем приложении и направляет вас к намеченному действию.
Альтернативно вы также можете протестировать интеграцию ссылок на приложения с помощью Помощника по ссылкам на приложения в Android Studio или использовать следующую команду для URL-адреса ссылки на приложение, который вы настроили, чтобы убедиться, что он правильно запускает соответствующее действие:
adb shell am start -a android.intent.action.VIEW -d <your_deep_link_url>
Замените опубликованные или общие динамические ссылки Firebase ссылками на приложения.
Последним шагом вашей миграции будет замена опубликованных или общих динамических ссылок Firebase ссылками на приложения, где это возможно, и продолжение использования ссылок на приложения в дальнейшем.
Выполнение этого шага будет зависеть от того, где и как вы опубликовали свои динамические ссылки Firebase, но чтобы помочь вам отслеживать, какие из них существуют, вы можете экспортировать существующие метаданные Firebase Dynamic Link. См. руководство по экспорту метаданных динамических ссылок .
Этапы миграции для универсальных ссылок на iOS
Создайте и разместите файлы конфигурации Universal Links на новом домене хостинга.
Чтобы использовать Universal Links, вам необходимо разместить файл конфигурации, который поможет установить безопасную связь между доменом, используемым в ваших ссылках, и вашим приложением. Для универсальных ссылок это файл apple-app-site-association
(также известный как файл AASA).
Действия по созданию и размещению файла apple-app-site-association
Файл AASA позволяет нам предоставить список авторизованных приложений, которые могут обрабатывать содержимое веб-домена, который мы будем использовать для наших универсальных ссылок. Сам файл AASA должен размещаться в корне веб-домена по пути: /.well-known.
Для завершения этой конфигурации выполните следующие действия:
Создайте папку « .well-known » в общей папке в корневом каталоге хостинга Firebase.
Создайте файл с именем « apple-app-site-association » в папке «.well-known».
Скопируйте следующее содержимое в файл apple-app-site-association, принимая во внимание значение каждого поля ниже:
{ "applinks": { "apps": [], "details": [ { "appId": "$TEAM_ID.com.firebase.UniversalLinks", "paths": [ "NOT /_/*", "/*" ] } ] } }
- $TEAM_ID.BundleId — полное имя приложения, уполномоченного обрабатывать ссылки.
Обновите файл firebase.json, чтобы проиндексировать его для хостинга.
"headers": [ { "source": "/.well-known/apple-app-site-association", "headers": [ { "key": "Content-Type", "value": "application/json" } ] } ]
Теперь, когда у нас есть файл AASA, выполните развертывание Firebase для размещения изменений.
Проверьте файл AASA, перейдя по адресу https:// your-project-domain .web.app/.well-known/app-app-site-association.
Создайте новые универсальные ссылки, соответствующие схеме глубоких ссылок, используемой в ваших динамических ссылках Firebase.
На этом этапе вы воссоздадите глубокие ссылки из своих динамических ссылок Firebase, используя обычные URL-адреса глубоких ссылок, соответствующие новому домену, который вы создали для своих универсальных ссылок.
Например, предположим, что у вас есть следующая динамическая ссылка Firebase:
Пример динамической ссылки | |
---|---|
Имя ссылки | Добро пожаловать на сайт example.com. |
Глубокая ссылка | https://example.web.app/welcome |
Android-приложение | com.example.android |
приложение Apple | com.example.ios |
Длинная динамическая ссылка | https://example.page.link/?link=https://example.web.app/welcome&apn=com.example.android&isi=123456789&ibi=com.example.iuos |
Короткая динамическая ссылка | https://example.page.link/m9Mm |
В этом случае вы должны извлечь параметр глубокой ссылки, то есть https://example.web.app/welcome, и теперь использовать его в качестве параметра универсальной ссылки для своего приложения.
Вам нужно будет повторить этот процесс для каждой динамической ссылки Firebase, на которую вы хотите перейти с помощью ссылок на приложения или универсальных ссылок, и реплицировать использованную вами схему глубоких ссылок.
Например, см. следующий набор коротких ссылок Firebase Dynamic Links, параметров глубоких ссылок и перенесенных значений глубоких ссылок:
Короткая ссылка | Параметр глубокой ссылки | Перенесенная глубокая ссылка |
---|---|---|
yourapp.page.link/добро пожаловать | https://example.com/добро пожаловать | yourapp.web.app/добро пожаловать |
yourapp.page.link/c7sn | https://example.com/main/?p=23&t=1 | yourapp.web.app/main/?p=23&t=1 |
yourapp.page.link/social | https://example.com/friendinvite/?add=1 | yourapp.web.app/friendinvite/?add=1 |
Затем вам нужно будет заменить все экземпляры динамических ссылок Firebase, которые были опубликованы или предоставлены к совместному использованию, новыми перенесенными глубокими ссылками, чтобы пользователи могли нажимать на эти универсальные ссылки вместо предыдущих динамических ссылок Firebase.
Обновите приложение iOS и код приложения, чтобы получать глубокие ссылки.
Следующим шагом после выбора домена, выбора схемы глубоких ссылок и переноса динамических ссылок Firebase в универсальные ссылки является обновление вашего приложения iOS и кода приложения для получения новых глубоких ссылок.
Мы рекомендуем следовать полной документации Universal Links по настройке вашего приложения для обработки глубоких ссылок, но основные шаги включают в себя:
Обновите конфигурацию проекта, чтобы приложение могло обрабатывать глубокие ссылки из недавно созданного домена.
Получите глубокую ссылку в коде вашего приложения
Чтобы обновить конфигурацию проекта, чтобы приложение могло обрабатывать глубокие ссылки, вам необходимо добавить в проект в xCode дополнительный связанный домен для домена, который вы сейчас планируете использовать для размещения файла apple-app-site-associate.
Это можно сделать следующим образом:
- Открытие Xcode
- Выбор вашего проекта в файловом навигаторе
- Переход на вкладку «Подписание и возможности» в настройках вашего проекта.
- Перейдите вниз к разделу «Связанные домены».
- Нажав кнопку +, вы добавите дополнительный домен в свой проект в формате «applinks:
".
Наконец, вам необходимо обновить код приложения, чтобы иметь возможность получать входящие глубокие ссылки.
Для этого сначала обновите файл AppDelegate.swift, чтобы он реагировал на универсальную ссылку, добавив следующий код:
func application(_ application: UIApplication, continue userActivity: NSUserActivity,
restorationHandler: @escaping ([UIUserActivityRestoring]?) -> Void) -> Bool {
AppDelegate.showReceivedUrl(userActivity: userActivity);
return true
}
static func showReceivedUrl(userActivity: NSUserActivity) {
if userActivity.activityType == NSUserActivityTypeBrowsingWeb {
let url = userActivity.webpageURL!
print(url.absoluteString)
}
Приведенный выше код переопределяет метод обратного вызова Universal Link и регистрирует URL-адрес глубокой ссылки, если он присутствует.
Теперь мы будем вызывать тот же метод showReceivedUrl
из класса SceneDelegate, поскольку, если приложение уже открыто к моменту, когда пользователь нажимает на универсальную ссылку, будет вызван обратный вызов универсальной ссылки внутри SceneDelegate
.
func scene(_ scene: UIScene, continue userActivity: NSUserActivity) {
AppDelegate.showReceivedUrl(userActivity: userActivity)
}
Тестирование универсальных ссылок
Вы можете протестировать только что созданные универсальные ссылки, запустив приложение на физическом устройстве или в симуляторе .
Вам нужно будет создать интерактивную ссылку, используя домен, настроенный для ваших универсальных ссылок, а затем щелкнуть эту ссылку, чтобы убедиться, что она открывается в вашем приложении и направляет вас на нужный экран вашего приложения.
Поддержка смарт-баннеров приложений
Мы настоятельно рекомендуем использовать смарт-баннеры приложений , чтобы предоставить вашим пользователям опыт, аналогичный динамическим ссылкам Firebase.
Используя смарт-баннеры приложений, ваши пользователи будут перенаправлены в App Store для просмотра вашего приложения, если ваше приложение еще не установлено на их устройстве. Вы также можете при желании настроить параметр, который будет передаваться в ваше приложение после его загрузки и установки, чтобы предоставить вашим пользователям возможность продолжить их путешествие. Если ваше приложение уже установлено, оно откроет возможность передачи параметра в ваше приложение, чтобы помочь пользователю перейти к соответствующему контенту на основе смарт-баннера приложения, на который он щелкнул.
Замените опубликованные или общие динамические ссылки Firebase ссылками на приложения.
Последним шагом вашей миграции будет замена опубликованных или общих динамических ссылок Firebase на универсальные ссылки, где это возможно, и продолжение использования универсальных ссылок в дальнейшем.
Выполнение этого шага будет зависеть от того, где и как вы опубликовали динамические ссылки Firebase.
Чтобы помочь вам отслеживать существующие динамические ссылки Firebase, подлежащие переносу, мы опубликуем руководство о том, как экспортировать метаданные коротких ссылок из динамических ссылок Firebase. Дополнительную информацию можно найти в нашем документе «Часто задаваемые вопросы по устареванию динамических ссылок» .
,В этом руководстве по миграции основное внимание уделяется использованию ссылок на приложения и универсальных ссылок , а также дополнительно использованию хостинга Firebase для размещения файлов связи вашего приложения с сайтом.
Эта миграция заменяет следующие функции Firebase Dynamic Links:
Особенность | Динамические ссылки Firebase | Ссылки на приложения/универсальные ссылки |
---|---|---|
Направляйте пользователей в магазин, соответствующий их устройству, одним щелчком ссылки. | ★ | |
Предоставьте пользователям возможность продолжить путешествие после загрузки и установки вашего приложения с помощью отложенной глубокой ссылки. | ★ | |
Предоставьте пользователям контекстный опыт, используя контент с глубокими ссылками в вашем приложении (если оно уже установлено). | ||
Предоставление аналитических данных, связанных с событиями щелчков по динамическим ссылкам. | ||
Предоставить возможность создавать URL-адреса коротких ссылок. |
Если для миграции вам по-прежнему нужны другие функции Firebase Dynamic Link, которые не поддерживаются в этом руководстве, см. другие сценарии миграции в документации по часто задаваемым вопросам об устаревании динамических ссылок .
Предположим, у вас есть динамическая ссылка Firebase, которая выглядит следующим образом:
Пример динамической ссылки | |
---|---|
Имя ссылки | Добро пожаловать на сайт example.com. |
Глубокая ссылка | https://example.web.app/welcome |
Android-приложение | com.example.android |
приложение Apple | com.example.ios |
Длинная динамическая ссылка | https://example.page.link/?link=https://example.web.app/welcome&apn=com.example.android&isi=123456789&ibi=com.example.iuos |
Короткая динамическая ссылка | https://example.page.link/m9Mm |
Цель этого руководства по миграции — заменить динамические ссылки Firebase следующим образом:
https://example.page.link/m9Mm
С глубокими ссылками App Link/Universal Link, которые выглядят следующим образом:
https:// your-project-domain .web.app/welcome
Обратите внимание, что глубокая ссылка App Link/Universal Link предоставит вашим пользователям следующее:
- Глубокая ссылка, по которой они могут нажать, чтобы открыть ваше приложение, когда оно уже установлено.
- Продолжение пользовательского пути, направляющее их к определенной части вашего приложения при его открытии.
Однако глубокая ссылка App Link/Universal Link не будет обеспечивать следующие действия для ваших пользователей (что ранее делала Firebase Dynamic Links):
- Направление пользователей в магазин, соответствующий их устройству, для загрузки и установки вашего приложения.
- Обеспечение продолжения пользовательского пути после загрузки, установки и первого открытия приложения.
Обратите внимание на различия в поведении и функциональности этих ссылок на приложения/универсальных ссылок по сравнению с динамическими ссылками Firebase, указанные в таблице выше.
Прежде чем начать
Firebase Dynamic Links использует ссылки на приложения (на Android) и универсальные ссылки (на iOS) в своей собственной базовой реализации, чтобы обеспечить функциональность глубоких ссылок после того, как ваше приложение уже установлено.
В этом руководстве рассказывается, как создавать собственные ссылки на приложения и универсальные ссылки с помощью хостинга Firebase, чтобы заменить ту часть функциональности, предоставляемую динамическими ссылками Firebase, при переносе динамических ссылок Firebase в новое решение для миграции ссылок на приложения или универсальных ссылок.
Для завершения миграции вам потребуется следующая информация:
- Динамические ссылки Firebase, которые вы собираетесь перенести.
- Параметры URL-адреса глубокой ссылки, включенные в ваши динамические ссылки.
- Домен, который вы планируете использовать для замены предыдущего домена Firebase Dynamic Links (если применимо).
Вы можете использовать руководство «Экспорт метаданных динамических ссылок», чтобы экспортировать существующие метаданные ссылок и получить информацию, указанную выше.
Обзор этапов миграции
Предоставьте новый домен (если у вас его еще нет, который вы хотите использовать) для размещения файлов конфигурации App Link/Universal Link с помощью хостинга Firebase.
Создайте и разместите файлы конфигурации App Link/Universal Link в своем домене хостинга.
Создайте новые ссылки на приложения или универсальные ссылки, соответствующие схеме глубоких ссылок, используемой в ваших динамических ссылках Firebase.
Обновите свои приложения Android/iOS и код приложения, чтобы получать глубокие ссылки.
Тестирование интеграции App Links/Universal Links.
Замените опубликованные или общие динамические ссылки Firebase ссылками на приложения и универсальными ссылками.
Первый шаг будет общим для потоков миграции App Links и Universal Link. Остальное будет зависеть от платформы, поэтому перейдите к разделу руководства ниже в зависимости от того, какую платформу вы хотите перенести в первую очередь.
Предоставьте новый домен для размещения файлов конфигурации App Link/Universal Link с помощью хостинга Firebase.
Выберите домен
Первый шаг — выбрать домен, который вы хотели бы использовать для своих ссылок на приложения или универсальных ссылок. Это будет домен, который будет использоваться для новых ссылок, которыми вы поделитесь со своими пользователями.
Если вы используете хостинг Firebase , субдомены проекта в формате your-project-domain .web.app
или your-project-domain .firebaseapp.com
автоматически предоставляются бесплатно. При желании вы также можете использовать личный домен с хостингом Firebase или без него для размещения файлов конфигурации App Link/Universal Link.
Настройте хостинг Firebase
Далее вам нужно будет настроить экземпляр хостинга Firebase .
К тому времени, как вы закончите настройку экземпляра хостинга Firebase, у вас будет домен, аналогичный your-project-domain .web.app
`, или собственный домен, если вы предпочитаете.
Этапы миграции для ссылок на приложения Android
Создайте и разместите файлы конфигурации App Link на новом домене хостинга.
Чтобы использовать ссылки на приложения, вам необходимо разместить файл конфигурации, который поможет установить безопасную связь между доменом, используемым в ваших ссылках, и вашим приложением. Для ссылок на приложения это файл assetlinks.json
.
Действия по созданию и размещению файла assetslinks.json
Файл assetlinks.json
позволяет нам предоставить список авторизованных приложений, которые могут обрабатывать содержимое веб-домена, который мы будем использовать для наших ссылок на приложения. Сам файл assetslinks.json должен размещаться в корне веб-домена по пути: /.well-known
.
Для завершения этой конфигурации выполните следующие действия:
Создайте папку
.well-known
в общей папке в корневом каталоге хостинга Firebase.Создайте файл с именем
assetlinks.json
в папке.well-known
.Скопируйте следующее содержимое в файл assetslinks.json, обращая внимание на значение каждого поля ниже:
[{ "relation": ["delegate_permission/common.handle_all_urls"], "target": { "namespace": "android_app", "package_name": "com.example.android", "sha256_cert_fingerprints": ["01:23:45:67:89:AB:CD:EF:01:23:45:67:89:AB:CD:EF:01:23:45:67:89:AB:CD:EF:01:23:45:67:89:AB:CD:EF"] } }]
-
namespace
— относится к имени приложения, которое вы хотите предоставить. -
package_name
— относится к идентификатору приложения, объявленному в файлеbuild.gradle
приложения. -
sha256_cert_fingerprints
— относится к отпечатку SHA256 файла хранилища ключей, который вы используете для подписи приложения.
Вы можете использовать файл debug.keystore, используемый Android Studio, для создания записи sha256_cert_fingerprints в целях отладки. Вы можете найти файл по адресу
/Users/<username>/.android/debug.keystore
в Mac и Linux иC:\Users\<username>\.android\debug.keystore
в Windows.Из этого хранилища ключей вы можете получить значение SHA256 с помощью инструмента ключей.
Дополнительные инструкции по выполнению этого шага см. в этом разделе документации по ссылкам на приложения.
Альтернативно вы также можете использовать Помощник по ссылкам на приложения в Android Studio, чтобы сгенерировать содержимое файла assetslinks.json и настроить приложение для обработки ссылок на приложения.
-
Обновите файл firebase.json, чтобы проиндексировать его для хостинга.
"headers": [ { "source": "/.well-known/assetlinks.json", "headers": [ { "key": "Content-Type", "value": "application/json" } ] } ]
Теперь, когда у нас есть файл assetslinks.json, запустите
firebase deploy
, чтобы разместить изменения.Обратите внимание, что для запуска указанной выше команды развертывания вам потребуется установить интерфейс командной строки Firebase .
firebase deploy --only hosting
Проверьте файл assetslinks.json, перейдя по адресу
https:// your-project-domain .web.app/.well-known/assetlinks.json
Создайте новые ссылки на приложения, соответствующие схеме глубоких ссылок, используемой в ваших динамических ссылках Firebase.
На этом этапе вы воссоздадите глубокие ссылки из своих динамических ссылок Firebase, используя обычные URL-адреса глубоких ссылок, соответствующие новому домену, который вы создали для своих ссылок на приложения.
Например, предположим, что у вас есть следующая динамическая ссылка Firebase:
Пример динамической ссылки | |
---|---|
Имя ссылки | Добро пожаловать на сайт example.com. |
Глубокая ссылка | https://example.web.app/welcome |
Android-приложение | com.example.android |
приложение Apple | com.example.ios |
Длинная динамическая ссылка | https://example.page.link/?link=https://example.web.app/welcome&apn=com.example.android&isi=123456789&ibi=com.example.iuos |
Короткая динамическая ссылка | https://example.page.link/m9Mm |
В этом случае вы должны извлечь параметр глубокой ссылки, то есть https://example.web.app/welcome, и теперь использовать его в качестве параметра App Link для своего приложения.
Вам нужно будет повторить этот процесс для каждой динамической ссылки Firebase, на которую вы хотите перейти с помощью ссылок на приложения или универсальных ссылок, и реплицировать использованную вами схему глубоких ссылок.
Например, см. следующий набор коротких ссылок Firebase Dynamic Links, параметров глубоких ссылок и перенесенных значений глубоких ссылок:
Короткая ссылка | Параметр глубокой ссылки | Перенесенная глубокая ссылка |
---|---|---|
yourapp.page.link/добро пожаловать | https://example.com/добро пожаловать | yourapp.web.app/добро пожаловать |
yourapp.page.link/c7sn | https://example.com/main/?p=23&t=1 | yourapp.web.app/main/?p=23&t=1 |
yourapp.page.link/social | https://example.com/friendinvite/?add=1 | yourapp.web.app/friendinvite/?add=1 |
Затем вам нужно будет заменить все экземпляры динамических ссылок Firebase, которые были опубликованы или предоставлены к совместному использованию, новыми перенесенными глубокими ссылками, чтобы пользователи могли нажимать на эти ссылки на приложения вместо предыдущих динамических ссылок Firebase.
Обновите приложение Android и код приложения, чтобы получать глубокие ссылки.
Следующим шагом после выбора домена, выбора схемы глубоких ссылок и переноса динамических ссылок Firebase в ссылки на приложения является обновление вашего приложения Android и кода приложения для получения новых глубоких ссылок.
Мы рекомендуем ознакомиться с полной документацией по ссылкам на приложения здесь или, в качестве альтернативы, с руководством Android Studio по настройке вашего приложения для обработки глубоких ссылок, но основные шаги включают в себя:
- Определение того, какие действия должны обрабатывать соответствующие глубокие ссылки.
- Добавление фильтра намерений для этих действий в файл AndroidManifest.xml.
- Получение глубокой ссылки в коде приложения ваших действий
Допустим, вы хотите использовать MainActivity для обработки некоторых глубоких ссылок. Для этого вам нужно будет добавить следующий фильтр намерений в MainActivity в файле AndroidManifest.xml:
<activity android:name=".MainActivity"
android:exported="true">
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
<intent-filter android:autoVerify="true">
<action android:name="android.intent.action.VIEW" />
<category android:name="android.intent.category.DEFAULT" />
<category android:name="android.intent.category.BROWSABLE" />
<data android:host="example.web.app" android:scheme="http"
android:pathPrefix="/welcome" />
<data android:host="example.web.app" android:scheme="https"
android:pathPrefix="/welcome" />
</intent-filter>
</activity>
На этом этапе вы указываете, что MainActivity является местом назначения для обработки глубоких ссылок из домена wxample.web.app и включает префикс пути /welcome. Обратите внимание, что вам также необходимо будет указать атрибут android:autoVerify="true", который позволит вам назначить ваше приложение обработчиком по умолчанию для данного типа ссылки.
Наконец, вам нужно будет добавить код в свою MainActivity, чтобы получить данные о глубоких ссылках и использовать их для улучшения работы глубоких ссылок в вашем приложении. Это похоже на логику, которую вы, возможно, уже запрограммировали в своем приложении при интеграции с Firebase Dynamic Links.
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
setContentView(R.layout.main)
val data: Uri? = intent?.data
val toast = Toast.makeText(this, data, duration)
toast.show()
}
Тестирование ссылок на приложения
Вы можете протестировать только что созданные ссылки на приложения, запустив приложение на физическом устройстве или в эмуляторе Android .
Вам нужно будет создать интерактивную ссылку, используя домен, настроенный для ваших ссылок на приложения, а затем щелкнуть эту ссылку, чтобы убедиться, что она открывается в вашем приложении и направляет вас к намеченному действию.
В качестве альтернативы вы также можете протестировать интеграцию ссылок на приложения с помощью Помощника по ссылкам на приложения в Android Studio или использовать следующую команду для URL-адреса ссылки на приложение, который вы настроили, чтобы убедиться, что он правильно запускает соответствующее действие:
adb shell am start -a android.intent.action.VIEW -d <your_deep_link_url>
Замените свои опубликованные или общие динамические ссылки Firebase на ссылки приложения
Последним шагом для вашей миграции будет замена ваших опубликованных или общих динамических ссылок Firebase на ссылки приложения, где это возможно, и продолжить использование ссылок приложений в будущем.
Завершение этого шага будет варьироваться в зависимости от того, где и как опубликованы ваши динамические ссылки на Firebase, но чтобы помочь вам отслеживать, какие из них существуют, вы можете экспортировать существующие метаданные динамические ссылки Firebase. См. Руководство по метаданным динамическим ссылкам экспорта .
Шаги миграции для универсальных ссылок на iOS
Создайте и размещайте файлы конфигурации Universal Links в вашем новом домене хостинга
Чтобы использовать универсальные ссылки, вы должны разместить файл конфигурации, который помогает установить безопасную связь между доменом, используемым в ваших ссылках, и вашим приложением. Для универсальных ссылок это файл apple-app-site-association
(также известный как файл AASA).
Шаги по созданию и размещению файла Apple-APP-сайта
Файл AASA позволяет нам предоставить список авторизованных приложений, которые могут обрабатывать содержимое веб -домена, которое мы будем использовать для наших универсальных ссылок. Сам файл AASA должен быть размещен в корне веб-домена под пути: /.well.
Следуйте приведенным ниже шагам, чтобы завершить эту конфигурацию:
Создайте папку « .well-Worn » под общедоступной папкой в вашем каталоге Firebase Hosting Root.
Создайте файл с именем « Apple-App-Association » в папке.
Скопируйте следующий контент в ваш файл Apple-APP-сайт, принимая к сведению значение каждого поля ниже:
{ "applinks": { "apps": [], "details": [ { "appId": "$TEAM_ID.com.firebase.UniversalLinks", "paths": [ "NOT /_/*", "/*" ] } ] } }
- $ Team_id.bundleid - полностью квалифицированное имя приложения, разрешенное для обработки ссылок
Обновите свой файл firebase.json, чтобы индексировать файл для хостинга.
"headers": [ { "source": "/.well-known/apple-app-site-association", "headers": [ { "key": "Content-Type", "value": "application/json" } ] } ]
Теперь, когда у нас есть файл AASA, разверните Firebase для размещения изменений.
Проверьте файл AASA, перейдя на https: // your-project-domain .web.app/.well-vonnely/app-app-site-association
Создайте новые универсальные ссылки, соответствующие схеме глубоких связей, используемых в вашей динамической ссылке Firebase
На этом этапе вы воссоздаете глубокие связи из своих динамических ссылок Firebase, используя обычные URL-адреса глубоководства, соответствующие новому домену, который вы создали для ваших универсальных ссылок.
Так, например, допустим, у вас есть следующая динамическая ссылка Firebase:
Пример динамической ссылки | |
---|---|
Название ссылки | Добро пожаловать на example.com |
Глубокая ссылка | https://example.web.app/welcome |
Android App | com.example.android |
Apple App | com.example.ios |
Длинная динамическая ссылка | https://example.page.link/?link=https://example.web.app/welcome&apn=com.example.android&isi=123456789&ibi=com.example.iuos |
Короткая динамическая ссылка | https://example.page.link/m9Mm |
В этом случае вы извлеките параметр глубокой ссылки - iehttps: //example.web.app/welcome и теперь используете это в качестве параметра Universal Link для вашего приложения.
Вы захотите повторить этот процесс для каждой динамической ссылки Firebase, которую вы хотите перейти, используя ссылки приложений / универсальные ссылки, и воспроизвести используемую вами схему глубокого связывания.
Например, см. В следующем наборе динамических ссылок Firebase короткие связи, параметры глубокой ссылки и мигрированные значения глубокой ссылки:
Короткая ссылка | Параметр глубокой ссылки | Мигрировал глубокую связь |
---|---|---|
yourapp.page.link/welcome | https://example.com/welcome | yourapp.web.app/welcome |
yourapp.page.link/c7sn | https://example.com/main/?p=23&t=1 | yourapp.web.app/main/?p=23&t=1 |
yourapp.page.link/social | https://example.com/friendinvite/?add=1 | yourapp.web.app/friendinvite/?add=1 |
Далее вам нужно заменить любые экземпляры динамических ссылок Firebase, которые были опубликованы или поделились с новыми мигрированными глубокими ссылками, чтобы пользователи нажимали на эти универсальные ссылки вместо предыдущих динамических ссылок Firebase.
Обновите свое приложение для iOS и код приложения, чтобы получить глубокие ссылки
Следующим шагом после выбора домена, выбор схемы глубокого связывания и перенос ваших динамических ссылок на Firebase на универсальные ссылки, является обновление вашего приложения для iOS и кода приложения для получения новых глубоких ссылок.
Мы рекомендуем следить за полной документацией Universal Links здесь о настройке вашего приложения для обработки глубоких ссылок, но основные шаги включают:
Обновите конфигурацию проекта, чтобы ваше приложение обрабатывает глубокие ссылки из вашего недавно созданного домена
Получите глубокую ссылку в коде вашего приложения
Чтобы обновить конфигурацию проекта, чтобы ваше приложение обрабатыло глубокие ссылки, вам нужно добавить дополнительный связанный домен в ваш проект в XCode для домена, который вы сейчас планируете использовать для размещения файла Apple-APP-сайта.
Это можно сделать:
- Открытие XCODE
- Выбор вашего проекта в файловом навигаторе
- Навигация на вкладку «Подписание и возможности» в настройках проекта
- Перейдите к разделу связанных доменов
- Нажав кнопку +, чтобы добавить дополнительный домен в ваш проект в формате »Applinks:
".
Наконец, вам нужно обновить код приложения, чтобы иметь возможность получить входящие глубокие ссылки.
Чтобы сделать это, сначала обновите файл appdelegate.swift, чтобы ответить на универсальную ссылку, добавив следующий код:
func application(_ application: UIApplication, continue userActivity: NSUserActivity,
restorationHandler: @escaping ([UIUserActivityRestoring]?) -> Void) -> Bool {
AppDelegate.showReceivedUrl(userActivity: userActivity);
return true
}
static func showReceivedUrl(userActivity: NSUserActivity) {
if userActivity.activityType == NSUserActivityTypeBrowsingWeb {
let url = userActivity.webpageURL!
print(url.absoluteString)
}
Приведенный выше код переопределяет метод вызовов Universal Link и регистрирует URL Deep Link, если присутствует.
Теперь мы также вызомем тот же метод showReceivedUrl
из класса ScenedElegate, так как, если приложение уже открыто к тому времени, когда пользователь нажимал на универсальную ссылку, Universal Link обращен внутри SceneDelegate
будет тем, который будет вызван.
func scene(_ scene: UIScene, continue userActivity: NSUserActivity) {
AppDelegate.showReceivedUrl(userActivity: userActivity)
}
Тестирование универсальных ссылок
Вы можете проверить только универсальные ссылки, которые вы только что создали, запустив свое приложение на физическом устройстве или симуляторе .
Вам нужно будет создать кликабельную ссылку, используя домен, настроенный для ваших универсальных ссылок, а затем нажмите на эту ссылку, чтобы убедиться, что она открывается в ваше приложение, и перемещает вас на предполагаемый экран в вашем приложении.
Поддержка интеллектуальных баннеров приложений
Мы настоятельно рекомендуем использовать интеллектуальные баннеры приложений в качестве способа предоставить вашим пользователям аналогичный опыт с динамическими ссылками Firebase.
Используя планы Smart App, ваши пользователи будут доставлены в App Store для списка ваших приложений, если ваше приложение еще не установлено на их устройстве. Вы также можете опционально настроить параметр для перехода в ваше приложение после того, как оно будет загружено и установлено, чтобы предоставить вашим пользователям продолжение их путешествия. Если ваше приложение уже установлено, оно откроет передачу параметра в вашем приложении, чтобы помочь перенести пользователя к соответствующему контенту на основе нажатого на его щелчок Smart App Banner.
Замените свои опубликованные или общие динамические ссылки Firebase на ссылки приложения
Последним шагом для вашей миграции будет замена ваших опубликованных или общих динамических ссылок Firebase на универсальные ссылки, где это возможно, и продолжать использовать универсальные ссылки в будущем.
Завершение этого шага будет варьироваться в зависимости от того, где и как опубликованы ваши динамические ссылки на Firebase.
Чтобы помочь вам отслеживать существующие динамические ссылки Firebase, которые должны быть мигрированы, мы будем публиковать руководство по экспорту ваших мета-данных с короткой ссылкой из динамических ссылок Firebase. Пожалуйста, проверьте наши динамические ссылки на FAQ DOC для получения дополнительных обновлений.
,Это руководство по миграции фокусируется на использовании ссылок приложений и универсальных ссылок , опционально используя хостинг Firebase для размещения файлов ассоциации ваших приложений.
Эта миграция заменяет следующие функции динамических ссылок Firebase:
Особенность | Динамические ссылки Firebase | Ссылки приложения / Универсальные ссылки |
---|---|---|
Маршрутируйте пользователей в правильный магазин для своего устройства по одной ссылке, щелкните | ★ | |
Предоставьте пользователям продолжение путешествия после загрузки и установки вашего приложения с помощью отложенной глубокой ссылки | ★ | |
Предоставьте пользователям контекстуальный опыт, используя глубоко связанный контент в вашем приложении (при уже установленном) | ||
Предоставьте аналитические данные, связанные с событиями динамической ссылки, клики | ||
Обеспечить возможность создавать короткие URL -адреса ссылки |
Если вам продолжают нужны другие функции динамической связи Firebase для вашей миграции, которые не поддерживаются в этом руководстве, см. Другие сценарии миграции в документации по вопросам управления динамическими ссылками .
Предположим, у вас есть динамическая ссылка Firebase, которая выглядит так:
Пример динамической ссылки | |
---|---|
Название ссылки | Добро пожаловать на example.com |
Глубокая ссылка | https://example.web.app/welcome |
Android App | com.example.android |
Apple App | com.example.ios |
Длинная динамическая ссылка | https://example.page.link/?link=https://example.web.app/welcome&apn=com.example.android&isi=123456789&ibi=com.example.iuos |
Короткая динамическая ссылка | https://example.page.link/m9Mm |
Цель этого руководства по миграции - заменить динамические ссылки Firebase, подобные этим:
https://example.page.link/m9Mm
С ссылкой приложения / универсальной ссылкой глубокие ссылки, которые выглядят так:
https:// your-project-domain .web.app/welcome
Обратите внимание, что ссылка на приложение / Universal Link Deep Link предоставит следующее вашим пользователям:
- Глубокая ссылка, которую они могут нажать, которая откроет ваше приложение при уже установленном
- Продолжение их путешествия пользователя, перемещая их в определенную часть вашего приложения, когда оно открыто
Тем не менее, ссылка на приложение / Universal Link Deep Link не предоставит следующее поведение для ваших пользователей (которые ранее делали динамические ссылки Firebase):
- Навигация пользователей в правильный магазин для своего устройства для загрузки и установки вашего приложения
- Предоставление продолжения их путешествия пользователя после загрузки, установки и открытия приложения в первый раз
Обратите внимание на различия в поведении и функциональности этих приложений / универсальных ссылок по сравнению с динамическими звенами Firebase, вызванными в таблице выше.
Прежде чем начать
Динамические ссылки Firebase используют ссылки приложений (на Android) и универсальные ссылки (на iOS) в своей собственной базовой реализации, чтобы обеспечить функциональность глубокого связывания после того, как ваше приложение уже установлено.
Это руководство проходит через то, как создать свои собственные ссылки на приложения и универсальные ссылки, используя хостинг Firebase, чтобы заменить эту часть функциональности, предоставленных динамическими ссылками Firebase, при переносе ваших динамических ссылок на Firebase на новые приложения / универсальные ссылки на миграционные решения.
Вам понадобятся следующие фрагменты информации, чтобы завершить миграцию:
- Динамические ссылки на пожарной базы, которые вы намереваетесь мигрировать
- Параметры URL-адреса глубоководства, включенные в ваши динамические ссылки
- Домен, который вы планируете использовать для замены вашего предыдущего домена Dynamic Links Firebase (если применимо)
Вы можете использовать Руководство по метаданным динамическим ссылкам экспорта для экспорта существующих метаданных ссылок и получить информацию, перечисленную выше.
Обзор шагов миграции
Предоставьте новый домен (если у вас еще нет того, что вы хотите использовать) для размещения файлов ссылки на приложение / Universal Link с использованием хостинга Firebase.
Создайте и размещайте ссылки на приложение / файлы конфигурации Universal Link в вашем домене хостинга.
Создайте новые ссылки на приложения / универсальные ссылки, соответствующие схеме глубокой связи, используемой в ваших динамических ссылках Firebase.
Обновите свои приложения Android / iOS и код приложения, чтобы получить глубокие связи.
Тестирование ссылок на приложение / Интеграции Universal Links.
Замените свои опубликованные или общие динамические ссылки Firebase на ссылки приложения и универсальные ссылки.
Первый шаг будет общим как для приложений, так и для миграционных потоков Universal Link. Остальная часть будет варьироваться в зависимости от платформы, поэтому перейдите к разделу руководства ниже, в зависимости от того, на какую платформу вы хотели бы перейти в первую очередь.
Предоставьте новый домен для размещения файлов ссылки на приложение / Universal Link с использованием хостинга Firebase
Выберите домен
Первый шаг - выбрать домен, который вы хотели бы использовать для ссылок вашего приложения / универсальных ссылок. Это будет домен, который будет использоваться для новых ссылок, которыми вы поделитесь своим пользователям.
Если вы используете хостинг Firebase , проект субдоменов с помощью формата your-project-domain .web.app
или your-project-domain .firebaseapp.com
автоматически предоставляется бесплатно. При желании вы можете использовать пользовательский домен с хостингом Firebase для размещения ссылки на приложение / Universal Link Files.
Установите хостинг Firebase
Затем вам нужно настроить и настроить экземпляр хостинга Firebase .
К тому времени, когда вы закончили настройку экземпляра хостинга Firebase, у вас будет домен, похожий на your-project-domain .web.app
`или пользовательский домен, если вы предпочитаете.
Шаги миграции для приложений Android
Создайте и размещают файлы конфигурации ссылки на приложение в своем новом домене хостинга
Чтобы использовать ссылки приложений, вы должны размещать файл конфигурации, который помогает установить безопасную связь между доменом, используемым в ваших ссылках и вашим приложением. Для ссылок приложений это файл assetlinks.json
.
Шаги по созданию и размещению файла AssetLinks.json
Файл assetlinks.json
позволяет нам предоставлять список авторизованных приложений, которые могут обрабатывать содержимое веб -домена, которое мы будем использовать для наших приложений. Сам файл assetlinks.json должен быть размещен в корне веб-домена под пути: /.well-known
.
Следуйте приведенным ниже шагам, чтобы завершить эту конфигурацию:
Создайте
.well-known
папку под общедоступной папкой в вашем каталоге Firebase Hosting Root.Создайте файл с именем
assetlinks.json
под.well-known
папкой.Скопируйте следующий контент в ваш файл AssetLinks.json, обращая внимание на значение каждого поля ниже:
[{ "relation": ["delegate_permission/common.handle_all_urls"], "target": { "namespace": "android_app", "package_name": "com.example.android", "sha256_cert_fingerprints": ["01:23:45:67:89:AB:CD:EF:01:23:45:67:89:AB:CD:EF:01:23:45:67:89:AB:CD:EF:01:23:45:67:89:AB:CD:EF"] } }]
-
namespace
- относится к названию приложения, которое вы хотите предоставить -
package_name
- относится к ApplicationId, объявленному в файле приложенияbuild.gradle
-
sha256_cert_fingerprints
- Относится к отпечатке пальцев SHA256 файла хранилища ключей, который вы используете для подписания приложения.
Вы можете использовать файл debug.keystore, используемый Android Studio для генерации записи SHA256_CERT_FINGERPRINTS для целей отладки. Вы можете найти файл по адресу
/Users/<username>/.android/debug.keystore
<username>/.android/debug.keystore на Mac и Linux иC:\Users\<username>\.android\debug.keystore
в Windows.Из этого магазина ключей вы можете получить значение SHA256, используя KeyTool.
Обратитесь к этому разделу документации по приложениям для получения дополнительных инструкций по завершению этого шага.
В качестве альтернативы вы также можете использовать помощника по ссылкам приложений в Android Studio для генерации содержимого файла AssetLinks.json и настройки вашего приложения для обработки ссылок приложений.
-
Обновите свой файл firebase.json, чтобы индексировать файл для хостинга.
"headers": [ { "source": "/.well-known/assetlinks.json", "headers": [ { "key": "Content-Type", "value": "application/json" } ] } ]
Теперь, когда у нас есть файл AssetLinks.json, запустите
firebase deploy
для размещения изменений.Примечание вам нужно будет установить CLI Firebase , чтобы запустить вышеуказанную команду развертывания.
firebase deploy --only hosting
Проверьте файл assetlinks.json, перейдя на
https:// your-project-domain .web.app/.well-known/assetlinks.json
Создать новые ссылки на приложения, соответствующие схеме глубоких связей, используемых в вашей динамической ссылке Firebase
На этом этапе вы будете воссоздать глубокие связи из своих динамических ссылок Firebase, используя обычные URL-адреса глубоководства, соответствующие новому домену, который вы создали для ссылок на ваши приложения.
Так, например, допустим, у вас есть следующая динамическая ссылка Firebase:
Пример динамической ссылки | |
---|---|
Название ссылки | Добро пожаловать на example.com |
Глубокая ссылка | https://example.web.app/welcome |
Android App | com.example.android |
Apple App | com.example.ios |
Длинная динамическая ссылка | https://example.page.link/?link=https://example.web.app/welcome&apn=com.example.android&isi=123456789&ibi=com.example.iuos |
Короткая динамическая ссылка | https://example.page.link/m9Mm |
В этом случае вы извлеките параметр глубокой ссылки - т.е. https://example.web.app/welcome и теперь используете это в качестве параметра ссылки приложения для вашего приложения.
Вы захотите повторить этот процесс для каждой динамической ссылки Firebase, которую вы хотите перейти, используя ссылки приложений / универсальные ссылки, и воспроизвести используемую вами схему глубокого связывания.
Например, см. В следующем наборе динамических ссылок Firebase короткие связи, параметры глубокой ссылки и мигрированные значения глубокой ссылки:
Короткая ссылка | Параметр глубокой ссылки | Мигрировал глубокую связь |
---|---|---|
yourapp.page.link/welcome | https://example.com/welcome | yourapp.web.app/welcome |
yourapp.page.link/c7sn | https://example.com/main/?p=23&t=1 | yourapp.web.app/main/?p=23&t=1 |
yourapp.page.link/social | https://example.com/friendinvite/?add=1 | yourapp.web.app/friendinvite/?add=1 |
Затем вам нужно заменить любые экземпляры динамических ссылок Firebase, которые были опубликованы или обмена с новыми мигрированными глубокими ссылками, чтобы пользователи нажимали на эти ссылки приложения вместо предыдущих динамических ссылок Firebase.
Обновите приложение для Android и код приложения, чтобы получить глубокие ссылки
Следующий шаг после выбора домена, выбор схемы глубокого связывания и перемещение ваших динамических ссылок на Firebase по ссылкам приложений-это обновление вашего приложения Android и кода приложения для получения новых глубоких ссылок.
Мы рекомендуем следить за полной документацией по ссылкам приложений здесь или, в качестве альтернативы, руководство Android Studio по настройке вашего приложения для обработки глубоких ссылок, но основные шаги включают в себя:
- Определение того, какие действия должны обрабатывать соответствующие глубокие ссылки
- Добавление фильтра намерения для этих действий в вашем файле AndroidManifest.xml
- Получение глубокой ссылки в коде приложения вашей деятельности
Допустим, вы хотели использовать свою MainActivity, чтобы справиться с некоторыми из ваших глубоких ссылок. Для этого вам нужно будет добавить следующий фильтр намерения в MainActivity в вашем файле androidmanifest.xml:
<activity android:name=".MainActivity"
android:exported="true">
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
<intent-filter android:autoVerify="true">
<action android:name="android.intent.action.VIEW" />
<category android:name="android.intent.category.DEFAULT" />
<category android:name="android.intent.category.BROWSABLE" />
<data android:host="example.web.app" android:scheme="http"
android:pathPrefix="/welcome" />
<data android:host="example.web.app" android:scheme="https"
android:pathPrefix="/welcome" />
</intent-filter>
</activity>
На этом этапе вы указываете, что MainActivity - это пункт назначения для обработки глубоких ссылок из домена wxample.web.App, который включает в себя префикс пути /приветствия. Обратите внимание, что вам также необходимо указать атрибут Android: Autoverify = "true", который позволяет назначить ваше приложение в качестве обработчика по умолчанию для этого типа ссылки.
Наконец, вам нужно будет добавить код в свой MainActivity, чтобы извлечь данные о глубокой связке и использовать их для управления опытом глубокой ссылки в вашем приложении. Это похоже на логику, которую вы, возможно, уже кодировали в своем приложении, когда вы интегрировали с динамическими ссылками Firebase.
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
setContentView(R.layout.main)
val data: Uri? = intent?.data
val toast = Toast.makeText(this, data, duration)
toast.show()
}
Тестирование ссылок приложений
Вы можете проверить ссылки приложения, которые вы только что создали, запустив свое приложение на физическом устройстве или в эмуляторе Android .
Вам нужно будет создать кликабельную ссылку, используя домен, настроенный для ссылок приложения, а затем нажмите на эту ссылку, чтобы убедиться, что она открывается в ваше приложение, и перемещает вас к предполагаемой деятельности.
В качестве альтернативы вы также можете протестировать интеграцию ссылок приложения, используя помощник по ссылкам приложения в Android Studio или использовать следующую команду для URL -адреса ссылки приложения, который вы настроили, чтобы убедиться, что она правильно запускает соответствующую деятельность:
adb shell am start -a android.intent.action.VIEW -d <your_deep_link_url>
Замените свои опубликованные или общие динамические ссылки Firebase на ссылки приложения
Последним шагом для вашей миграции будет замена ваших опубликованных или общих динамических ссылок Firebase на ссылки приложения, где это возможно, и продолжить использование ссылок приложений в будущем.
Завершение этого шага будет варьироваться в зависимости от того, где и как опубликованы ваши динамические ссылки на Firebase, но чтобы помочь вам отслеживать, какие из них существуют, вы можете экспортировать существующие метаданные динамические ссылки Firebase. См. Руководство по метаданным динамическим ссылкам экспорта .
Шаги миграции для универсальных ссылок на iOS
Создайте и размещайте файлы конфигурации Universal Links в вашем новом домене хостинга
Чтобы использовать универсальные ссылки, вы должны разместить файл конфигурации, который помогает установить безопасную связь между доменом, используемым в ваших ссылках, и вашим приложением. Для универсальных ссылок это файл apple-app-site-association
(также известный как файл AASA).
Шаги по созданию и размещению файла Apple-APP-сайта
Файл AASA позволяет нам предоставить список авторизованных приложений, которые могут обрабатывать содержимое веб -домена, которое мы будем использовать для наших универсальных ссылок. Сам файл AASA должен быть размещен в корне веб-домена под пути: /.well.
Следуйте приведенным ниже шагам, чтобы завершить эту конфигурацию:
Создайте папку « .well-Worn » под общедоступной папкой в вашем каталоге Firebase Hosting Root.
Создайте файл с именем « Apple-App-Association » в папке.
Скопируйте следующий контент в ваш файл Apple-APP-сайт, принимая к сведению значение каждого поля ниже:
{ "applinks": { "apps": [], "details": [ { "appId": "$TEAM_ID.com.firebase.UniversalLinks", "paths": [ "NOT /_/*", "/*" ] } ] } }
- $ Team_id.bundleid - полностью квалифицированное имя приложения, разрешенное для обработки ссылок
Обновите свой файл firebase.json, чтобы индексировать файл для хостинга.
"headers": [ { "source": "/.well-known/apple-app-site-association", "headers": [ { "key": "Content-Type", "value": "application/json" } ] } ]
Теперь, когда у нас есть файл AASA, разверните Firebase для размещения изменений.
Проверьте файл AASA, перейдя на https: // your-project-domain .web.app/.well-vonnely/app-app-site-association
Создайте новые универсальные ссылки, соответствующие схеме глубоких связей, используемых в вашей динамической ссылке Firebase
На этом этапе вы воссоздаете глубокие связи из своих динамических ссылок Firebase, используя обычные URL-адреса глубоководства, соответствующие новому домену, который вы создали для ваших универсальных ссылок.
Так, например, допустим, у вас есть следующая динамическая ссылка Firebase:
Пример динамической ссылки | |
---|---|
Название ссылки | Добро пожаловать на example.com |
Глубокая ссылка | https://example.web.app/welcome |
Android App | com.example.android |
Apple App | com.example.ios |
Длинная динамическая ссылка | https://example.page.link/?link=https://example.web.app/welcome&apn=com.example.android&isi=123456789&ibi=com.example.iuos |
Короткая динамическая ссылка | https://example.page.link/m9Mm |
В этом случае вы извлеките параметр глубокой ссылки - iehttps: //example.web.app/welcome и теперь используете это в качестве параметра Universal Link для вашего приложения.
Вы захотите повторить этот процесс для каждой динамической ссылки Firebase, которую вы хотите перейти, используя ссылки приложений / универсальные ссылки, и воспроизвести используемую вами схему глубокого связывания.
Например, см. В следующем наборе динамических ссылок Firebase короткие связи, параметры глубокой ссылки и мигрированные значения глубокой ссылки:
Короткая ссылка | Параметр глубокой ссылки | Мигрировал глубокую связь |
---|---|---|
yourapp.page.link/welcome | https://example.com/welcome | yourapp.web.app/welcome |
yourapp.page.link/c7sn | https://example.com/main/?p=23&t=1 | yourapp.web.app/main/?p=23&t=1 |
yourapp.page.link/social | https://example.com/friendinvite/?add=1 | yourapp.web.app/friendinvite/?add=1 |
Далее вам нужно заменить любые экземпляры динамических ссылок Firebase, которые были опубликованы или поделились с новыми мигрированными глубокими ссылками, чтобы пользователи нажимали на эти универсальные ссылки вместо предыдущих динамических ссылок Firebase.
Обновите свое приложение для iOS и код приложения, чтобы получить глубокие ссылки
Следующим шагом после выбора домена, выбор схемы глубокого связывания и перенос ваших динамических ссылок на Firebase на универсальные ссылки, является обновление вашего приложения для iOS и кода приложения для получения новых глубоких ссылок.
Мы рекомендуем следить за полной документацией Universal Links здесь о настройке вашего приложения для обработки глубоких ссылок, но основные шаги включают:
Обновите конфигурацию проекта, чтобы ваше приложение обрабатывает глубокие ссылки из вашего недавно созданного домена
Получите глубокую ссылку в коде вашего приложения
Чтобы обновить конфигурацию проекта, чтобы ваше приложение обрабатыло глубокие ссылки, вам нужно добавить дополнительный связанный домен в ваш проект в XCode для домена, который вы сейчас планируете использовать для размещения файла Apple-APP-сайта.
Это может быть сделано:
- Открытие XCODE
- Выбор вашего проекта в файловом навигаторе
- Навигация на вкладку «Подписание и возможности» в настройках проекта
- Перейдите к разделу связанных доменов
- Нажав кнопку +, чтобы добавить дополнительный домен в ваш проект в формате »Applinks:
".
Наконец, вам нужно обновить код приложения, чтобы иметь возможность получить входящие глубокие ссылки.
Чтобы сделать это, сначала обновите файл appdelegate.swift, чтобы ответить на универсальную ссылку, добавив следующий код:
func application(_ application: UIApplication, continue userActivity: NSUserActivity,
restorationHandler: @escaping ([UIUserActivityRestoring]?) -> Void) -> Bool {
AppDelegate.showReceivedUrl(userActivity: userActivity);
return true
}
static func showReceivedUrl(userActivity: NSUserActivity) {
if userActivity.activityType == NSUserActivityTypeBrowsingWeb {
let url = userActivity.webpageURL!
print(url.absoluteString)
}
Приведенный выше код переопределяет метод вызовов Universal Link и регистрирует URL Deep Link, если присутствует.
Теперь мы также вызомем тот же метод showReceivedUrl
из класса ScenedElegate, так как, если приложение уже открыто к тому времени, когда пользователь нажимал на универсальную ссылку, Universal Link обращен внутри SceneDelegate
будет тем, который будет вызван.
func scene(_ scene: UIScene, continue userActivity: NSUserActivity) {
AppDelegate.showReceivedUrl(userActivity: userActivity)
}
Тестирование универсальных ссылок
Вы можете проверить только универсальные ссылки, которые вы только что создали, запустив свое приложение на физическом устройстве или симуляторе .
Вам нужно будет создать кликабельную ссылку, используя домен, настроенный для ваших универсальных ссылок, а затем нажмите на эту ссылку, чтобы убедиться, что она открывается в ваше приложение, и перемещает вас на предполагаемый экран в вашем приложении.
Поддержка интеллектуальных баннеров приложений
Мы настоятельно рекомендуем использовать интеллектуальные баннеры приложений в качестве способа предоставить вашим пользователям аналогичный опыт с динамическими ссылками Firebase.
Используя планы Smart App, ваши пользователи будут доставлены в App Store для списка ваших приложений, если ваше приложение еще не установлено на их устройстве. Вы также можете опционально настроить параметр для перехода в ваше приложение после того, как оно будет загружено и установлено, чтобы предоставить вашим пользователям продолжение их путешествия. Если ваше приложение уже установлено, оно откроет передачу параметра в вашем приложении, чтобы помочь перенести пользователя к соответствующему контенту на основе нажатого на его щелчок Smart App Banner.
Замените свои опубликованные или общие динамические ссылки Firebase на ссылки приложения
Последним шагом для вашей миграции будет замена ваших опубликованных или общих динамических ссылок Firebase на универсальные ссылки, где это возможно, и продолжать использовать универсальные ссылки в будущем.
Завершение этого шага будет варьироваться в зависимости от того, где и как опубликованы ваши динамические ссылки на Firebase.
Чтобы помочь вам отслеживать существующие динамические ссылки Firebase, которые должны быть мигрированы, мы будем публиковать руководство по экспорту ваших мета-данных с короткой ссылкой из динамических ссылок Firebase. Пожалуйста, проверьте наши динамические ссылки на FAQ DOC для получения дополнительных обновлений.