Я хочу создать ссылку на приложение на моем устройстве, но оно не работает - PullRequest
1 голос
/ 10 июня 2019

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

<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="ravkavonline.co.il" 
          android:pathPrefix="/pos/" android:scheme="https"/>
 </intent-filter>

Я написал следующую ссылку

 <a href="https://ravkavonline.co.il">click me!</a>

Но он отправляет меня на их сайт в браузере и не открываетприложение.

Ответы [ 2 ]

0 голосов
/ 10 июня 2019

Глубокая связь с приложением - непростая задача, так как разные браузеры, встроенные браузеры и устройства ведут себя по-разному.

Некоторые сведения: упомянутое выше приложение объявило «схему URI» для глубоких ссылоки установите схему https:\\ для глубокой связи.Это уже проблема, так как эта схема широко используется приложениями браузера (и это означает, что если вы установили приложение по умолчанию для этой схемы, вы не сможете открыть приложение, пока не сбросите настройки).

Кроме того, действие перенаправления на https://ravkavonline.co.il не поддерживается в нескольких браузерах.Например, в Chrome вы не можете запустить приложение, используя схему URI (и должны использовать намерения).Это означает, что вам понадобится некоторая логика, которая будет определять пользовательский агент браузера и будет пытаться создать глубокую ссылку в соответствии с правильной стратегией.

Кроме того, если приложение не установлено, перенаправление схемы URI завершится неудачно.и оставить пользователя на пустой странице.Так что вам также нужно разобраться с этим делом.

Например:

window.location.href = "yourapp://";
setTimeout(function () {
    window.location.href = ...store_link_for_your_app..;
}, 1000);
0 голосов
/ 10 июня 2019

Вы должны добавить фильтр намерений к определенному действию, куда вы должны перенаправить после нажатия на

 <activity
        android:name=".ui.SplashActivity"
        android:screenOrientation="portrait"
        android:exported="true">
        <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:scheme="http"
                android:host="www.xyz.com"
                android:pathPrefix="/"/>
        </intent-filter>

Вы должны добавить эти строки в свой класс деятельности

 Intent appLinkIntent = getIntent();
    String appLinkAction = appLinkIntent.getAction();
    Uri appLinkData = appLinkIntent.getData();

приведенный выше код работает для меня отлично.Также вы должны перейти по ссылке ниже для Deep Linking Android Studio шаг за шагом

https://developer.android.com/studio/write/app-link-indexing.html

https://developer.android.com/training/app-links/deep-linking

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...