Android глубокая ссылка, используя намерение не открывать приложение - PullRequest
0 голосов
/ 18 декабря 2018

Я пытаюсь открыть приложение, которое я сделал из мобильного браузера Chrome.

https://developer.chrome.com/multidevice/android/intents

По этой ссылке я решил, что должен использовать синтаксис "intent:" дляделать работу.

Однако мое приложение не открывается.Вместо этого он открывает Google Play Store, но в магазине просто отображается страница «Предмет не найден».

Мне бы очень хотелось узнать, если я что-то не так делаю.

        <intent-filter>
            <action android:name="android.intent.action.VIEW" />

            <category android:name="android.intent.category.BROWSABLE" />
            <category android:name="android.intent.category.DEFAULT" />

            <data android:scheme="myscheme" android:host="myhost" android:path="/"/>
        </intent-filter>

Это фильтр намерений, который я написал.

var androidIntentUrl = 'intent://myhost/#Intent;scheme=myscheme;package=my.test.app.package;end';

if(!isIOS && isChromeAndBiggerThanVer25()) {
        location.href = androidIntentUrl;
}

И это то, что я написал в Интернете.

Должно ли приложение быть выпущено в Play Store, чтобы это произошло?

Я еще не совсем все понял.

Я хочу знать, что не так.

PS) Имена "myscheme" и "myhost" - это просто имена, которые я сделална написание этого вопроса.Фактические имена в моем коде совпадают с именами, написанными в настройках моего проекта, и всеми, включая имя пакета.

Ответы [ 3 ]

0 голосов
/ 19 декабря 2018

Как прокомментировал мой пост Алексей,

<a href="myscheme://myhost/some/other/parameters">

работал для меня просто нормально.

Я дважды проверил официальный документ (ссылка на мой пост) и мою версию Chrome (котораяэто 71), поэтому я понятия не имею, почему синтаксис намерения: // не работает.

Я думаю, что в мобильном Chrome произошли изменения после версии 25, которые я пропустил или не смог найти.

0 голосов
/ 27 марта 2019

Мой ответ - открыть приложение для Android из веб-приложения, используя глубокие ссылки:

Flipkart     - <a href="flipkart://app"> Open Flipkart!  </a>
WhatsApp     - <a href="whatsapp://app"> Open WhatsApp!  </a>
Clash Royale - <a href="clashroyale://app"> Open Clash Royale!  </a>
FaceBook     - <a href="fb://app"> Open FaceBook!  </a>

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

0 голосов
/ 18 декабря 2018

Параметр package должен соответствовать идентификатору вашего приложения (находится в build.gradle или вашем AndroidManifest.xml)

В приведенном выше примере кода пакет отображается как my.test.app.package, если это не имя пакета вашего приложенияили если приложение не установлено, по умолчанию для поиска будет выбран Google Play Store.Точно так же было бы лучше изменить параметры host и scheme на что-то нестандартное для вашего приложения, если вы этого еще не сделали.

...