Обнаруживать, если Android-приложение установлено на устройстве с помощью мобильной веб-страницы - PHP и JS
У меня есть такое требование, и что-то подобное этому было реализовано в Android-магазине Android Pit.
Мне нужно проверить, установлено ли приложение Android на устройстве с помощью мобильной веб-страницы (PHP и JS), и если приложение установлено немедленно.
Это промежуточные страницы, используемые ядром Android.
Когда приложение не установлено - http://www.androidpit.com/en/android/market/app-center-mobile?pname=com.ocito.laredoute
Когда приложение уже установлено - http://www.androidpit.com/ru/qrdl/com.mobage.ww.a692.Bahamut_Android
Кто-нибудь знает, как это реализовать?
Ответы
Ответ 1
К счастью, это невозможно, по очевидным причинам конфиденциальности.
Самое близкое, что вы можете сделать, это приложение, у которого есть <intent-filter>
для некоторой структуры URL-адреса и есть ссылка на мобильном веб-сайте на соответствующий URL-адрес.
Если пользователь нажимает на ссылку и приложение установлено, это будет выбор для пользователя.
Если пользователь нажимает на ссылку и приложение не установлено, или они предпочитают придерживаться своего веб-браузера от выбора, какая-либо веб-страница будет существовать на этом URL-адресе (например, инструкции по загрузке приложения).
Ответ 2
Есть способ достичь этого. Нашел этот ответ
Вы не можете определить, установлено ли какое-либо конкретное приложение по соображениям безопасности и конфиденциальности. Но вы можете сделать трюк, чтобы открыть приложение, если оно установлено или открывает страницу Google Play, если это не так.
Чтобы сделать это, вы должны создать фильтр намерений в основной деятельности вашего приложения, чтобы открыть его, когда вызывается данный URL. Как это:
<activity android:name=".MainActivity >
<intent-filter>
<data
android:host="www.myurl.com"
android:pathPrefix="/openmyapp"
android:scheme="http" >
</data>
<action android:name="android.intent.action.VIEW" />
<category android:name="android.intent.category.DEFAULT" />
<category android:name="android.intent.category.BROWSABLE" />
<category android:name="android.intent.category.VIEW" />
</intent-filter>
</activity>
Объяснение: когда пользователь переходит на http://www.myurl.com/openmyapp, если приложение установлено, будет создано намерение и будет показано действие.
Но что, если у пользователя нет установленного приложения? Затем вам нужно создать страницу переадресации на http://www.myurl.com/openmyapp/index.html. Когда пользователь достигает этого адреса, ваш сервер должен перенаправить на рынок://details? Id = com.your.app.package.
Таким образом, когда не будет создано Intent после того, как пользователь перейдет на http://www.myurl.com/openmyapp, веб-сервер вызовет другой URL-адрес. Этот URL, в свою очередь, откроет Google Play на устройстве прямо на странице приложения.
Ответ 3
В случае
<data
android:host="www.myurl.com"
android:pathPrefix="/openmyapp"
android:scheme="http" >
</data>
он спросит пользователя, каким образом открыть контент.
![enter image description here]()
Чтобы избежать этого или избежать подключения вашего приложения к некоторому URL, вы можете сделать еще один трюк, чтобы реализовать это с помощью PHP и JS.
- Вы должны создать намеренный фильтр в основной активности вашего приложения, например так:
<intent-filter android:label="filter_react_native">
<action android:name="android.intent.action.VIEW" />
<category android:name="android.intent.category.DEFAULT" />
<category android:name="android.intent.category.BROWSABLE" />
<data android:scheme="MyCustomScheme" android:host="MyCustomHost" />
</intent-filter>
- Создайте PHP файл
redirect_to_app.php
который будет работать, если у пользователя установлено приложение.
<?php
header('Location: MyCustomScheme://MyCustomHost');
- Создайте HTML/PHP файл
check_redirect_to_app.php
который должен отображаться для пользователей, которые еще не установили ваше приложение.
...
<a href="#" onclick="location.href='https://play.google.com/store/apps/details?id=YOUR_APP_PACKAGE_NAME'; return false;">Please the install application</a>
...
<script>
location.href = '...redirect_to_app.php';
</script>
- Перенаправьте пользователей на
check_redirect_to_app.php
. check_redirect_to_app.php
попытается перенаправить на MyCustomScheme://MyCustomHost
автоматически. В случае, если оно не найдет такое приложение, оно будет продолжать показывать содержимое check_redirect_to_app.php
.