Как сделать ссылки с моего сайта на мое приложение, если оно установлено

Чего я хотел бы достичь

Когда пользователь нажимает на любую ссылку с моего веб-сайта, я бы хотел, чтобы он направлял конкретную ссылку пользователя в моем приложении (если оно установлено). Если он не установлен, направьте пользователя по ссылке в браузере.

Пример:

Пользователь получает электронное письмо со ссылкой: www.myapp.com/someplaceinmyapp Он переходит на эту страницу в моем приложении, если оно установлено. Если нет, то перейдите на эту страницу в браузере.

Имейте в виду, что это будет для всех страниц в моем приложении. Так что это относится к любой ссылке с моей веб-страницы.

Мои вопросы

Есть ли для этого конкретное название? Я знаю о глубоких ссылках и ссылках на приложения, но я не уверен, что мне подходит.

Это вообще возможно? Я даже не уверен, возможно ли это на данный момент.

Будет ли код для этого находиться на сайте или в приложении? например: Javascript или Kotlin или что-то в файле манифеста.

Как мне это сделать? Это, наверное, то, что мне нужно больше всего.

Примечания

У меня есть что-то на моей веб-странице, которая показывает всплывающее окно (только в браузере) с надписью «Используйте приложение». Если не установлено, то идет в плей маркет. Если установлено, то переходит на домашнюю страницу моего сайта в моем приложении. Я нашел, как это сделать из здесь, используя ответ с наибольшим количеством голосов (не принятый), поэтому в моем манифесте у меня есть:

        <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:scheme = "http"
                android:host = "www.myapp.com"
                android:pathPrefix = "/install.html" />
        </intent-filter>

Если есть что-то, что вы хотели бы, чтобы я добавил к этому вопросу, просто дайте мне знать :)

Вы имеете в виду вот так? youtu.be/-Vpf2phPoF0

Sam Chen 24.12.2020 05:12

Да, это то, что мне нужно.

Amy 24.12.2020 05:17

Как сказано в описании к видео, да, я хотел бы получить обучающую программу по этому вопросу.

Amy 24.12.2020 05:21
2
3
1 733
3
Перейти к ответу Данный вопрос помечен как решенный

Ответы 3

Используйте ссылки на Android-приложения в своем приложении. При правильной реализации пользователь будет перемещен непосредственно в указанное место назначения в приложении.

Дополнительная информация об этом в этих документах:

Подтвердите ссылки на приложения для Android

Создайте неявную глубокую ссылку

Для ввода конкретных Activity или Fragment вашего приложения с URL-адреса рекомендуется использовать глубокие ссылки из компонента навигации.

1. Добавьте глубокую ссылку URL в файл ресурсов навигации (из панели «Атрибуты»):

<fragment
    android:id = "@+id/studentEditorFragment"
    android:name = "com.example.roomtest.studentEditor.StudentEditorFragment"
    android:label = "StudentEditorFragment"
    tools:layout = "@layout/fragment_student_editor">

    <argument
        android:name = "studentId"
        app:argType = "long" />

    <deepLink
        android:id = "@+id/deepLink"
        app:uri = "www.example.com/roomTest/{studentId}" />       //here, company domain name followed by application path or argument

</fragment>

2. Добавьте атрибут навигации в файл AndroidManifest:

<activity android:name = ".MainActivity">                 //【inside the "<activity>" tag】
    <intent-filter>
        <action android:name = "android.intent.action.MAIN" />

        <category android:name = "android.intent.category.LAUNCHER" />
    </intent-filter>

    <nav-graph android:value = "@navigation/navigation" />        //here
</activity>

3. Используйте ссылку в веб-браузере или текстовом сообщении: «www.example.com/roomTest/-1».

  • Для передачи нескольких аргументов просто соедините их с помощью «&», например: «www.example.com/roomText/-1&true» (переформатируйте «&» в xml по запросу).

Это не то, что я ищу. Как я это для конкретной ссылки. Мне нужно что-то для всех ссылок с моего сайта.

Amy 26.12.2020 05:10
Ответ принят как подходящий

Я обнаружил, что способ сделать это — использовать помощника по ссылкам на приложения, который вы можете найти в студии Android в разделе «Инструменты» -> «Помощник по ссылкам на приложения». Вот что вы должны увидеть сбоку, как только откроете его:

Шаг 1

Нажмите «Открыть редактор сопоставления URL-адресов», затем добавьте сопоставление URL-адресов (нажмите «+»). В хосте поместите ссылку на свой сайт, например: https://www.example.com. Для пути в поле выбора выберите только «путь» и ничего не вводите в поле типа.

Шаг 2

Кнопка Select Activity не работает для Kotlin, поэтому вот код, который вам нужно ввести вручную.

    override fun onNewIntent(intent: Intent) {
    super.onNewIntent(intent)
    handleIntent(intent)
}

private fun handleIntent(intent: Intent) {
    val wbWebView = findViewById<View>(R.id.your_webview) as WebView
    val appLinkAction = intent.action
    val appLinkData = intent.data
    if (Intent.ACTION_VIEW == appLinkAction && appLinkData != null) {
            wbWebView.loadUrl(appLinkData.toString())
    } else {
        // default link that it goes to when opening app
        wbWebView.loadUrl("https://www.example.com")
    }
}

и в вашем onCreate добавьте handleIntent(intent)

Шаг 3

Нажмите «Открыть генератор файлов ссылок на цифровые активы». Большая часть информации уже будет заполнена, поэтому вы можете нажать «Создать файл ссылок на цифровые активы». Создайте папку с именем «.well-known» на своем веб-сайте, а затем поместите туда файл с именем «assetlinks.json», вставьте туда предварительный просмотр. Поэтому, когда вы перейдете на https://www.yourwebsite.com/.well-known/assetlinks.json , вы сможете увидеть файл ссылок на цифровые активы. Вы также можете увидеть другие веб-сайты Файл ссылок на цифровые активы. Лайк для гугла, https://www.google.com/.well-known/assetlinks.json.

Затем нажмите кнопку «Связать и подтвердить». Если все пойдет хорошо, вы увидите это под кнопкой:

Шаг 4

Время тестировать! Нажмите «Проверить ссылки на приложения» и введите URL-адрес с вашего веб-сайта. Если все пойдет хорошо, вы не должны увидеть диалог значений неоднозначности.

Я также хотел бы провести дальнейшее тестирование, отправив себе электронное письмо со ссылкой в ​​нем.

Примечания

Вы можете использовать Помощник по ссылкам на приложения, только если ваш веб-сайт использует https вместо http.

Я добавил android:launchMode = "singleTask" в свой тег активности в манифесте, это означает, что если вы нажмете на ссылку с вашего сайта в электронном письме, она откроется в новом окне.

У них есть документ об этом здесь, который включает видео (имейте в виду, что они используют java)

Если кому-то нужно больше заметок по этому поводу или есть какие-либо вопросы, не стесняйтесь спрашивать :)

Amy 21.12.2021 12:19

Другие вопросы по теме

Java.Lang.NoClassDefFoundError при реализации обмена облачными сообщениями Firebase
Сбой сборки с «задачей: функции: каталог: создатьDebugCompatibleScreenManifests FAILED» при рефакторинге в модули динамических функций на Android
Ошибка: манифест наложения: атрибут пакета объявлен в AndroidManifest.xml:2:5-34. Флаттер
Проблема с манифестом Android при создании пакета приложений флаттера
Приложение было отклонено из-за нарушения нашей политики в отношении злонамеренного поведения или пользовательских данных и программного обеспечения, содержащего уязвимости в системе безопасности
Не удалось объединить манифест с несколькими ошибками, смотрите журналы даже после настройки экспорта во всех компонентах
Как преодолевается ошибка ERR_CLEARTEXT_NOT_PERMITTED?
Не удается разрешить символ AndroidManifest.xml
Как программно изменить значок приложения и push-уведомления
AOSP 13: проблема слияния манифеста из-за дублирования запуска androidx