Подтвердить что ты не робот

Обнаружение из браузера, если определенное приложение установлено на Android

Я ищу способ узнать, установлено ли определенное приложение из клиентского веб-браузера. Платформа - Android.

Например, я пишу свой собственный веб-сайт, и я пишу свое собственное приложение, теперь хочу, когда пользователь приходит на свой сайт с Android-браузера Android. Браузер выглядит, если приложение уже установлено на телефоне, и если вы не предлагаете установить приложение. Могу ли я это сделать?

4b9b3361

Ответ 1

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

Если вы хотите, чтобы пользователь установил конкретное приложение, вы можете указать ссылку на Market на своем веб-сайте: http://developer.android.com/guide/publishing/publishing.html#marketintent

Изменить: после вашего пояснения в комментариях к моему ответу ниже появился более полезный ответ, который по праву имеет больше приоритетов.

Ответ 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.LAUNCHER" />
        </intent-filter>
    </activity> 

Объяснение: когда пользователь переходит к http://www.myurl.com/openmyapp, если приложение установлено, будет создано намерение и будет показано действие.

Но что, если у пользователя нет установленного приложения? Затем вам нужно создать страницу перенаправления на http://www.myurl.com/openmyapp/index.html. Когда пользователь достигает этого адреса, ваш сервер должен перенаправить на market://details?id=com.your.app.package.

Таким образом, если после того, как пользователь перейдет на http://www.myurl.com/openmyapp, когда не будет создан Intent, веб-сервер вызовет другой URL-адрес. Этот URL, в свою очередь, откроет Google Play на устройстве прямо на странице приложения.

Надеюсь, это поможет.

Ответ 3

Я нашел более полезное решение. Ниже приведен файл конфигурации Android:

<activity android:name="me.test.html.MainActivity" >
    <intent-filter>
        <action android:name="android.intent.action.VIEW" />

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

        <data
            android:host="xxxxx"
            android:scheme="mm" />
    </intent-filter>
</activity>

Ниже приведен код html:

<html>  
<head>  
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">  
<title>Insert title here</title>  
<script type="text/javascript">
function test2(){
    var di = document.getElementById("di");
    di.innerHTML = "app have not installed";
}
function newOpen(){//184 064 323 438
    var di = document.getElementById("di");
    di.innerHTML = "app have installed";
    var ifc = document.getElementById("ifc");
    ifc.innerHTML = "<iframe src='mm://xxxxx?a=b&c=d' onload='test2()'></iframe>";
    return false;
}
</script>
</head>  
<body>  
 <a href="#" onclick="return newOpen()">local3</a><br/> 
<div id="di"></div> 
 <div style="display:none;" id="ifc"></div>
</body>  
</html>

Таким образом, когда пользователь нажимает на тег, и если на устройстве установлено приложение, он не будет отображать диалоговое окно, позволяющее пользователю выбирать, но вместо этого открывать приложение напрямую; и если приложение не было установлено, тогда будет вызвана функция js "test2", поэтому мы знаем, что приложение не установлено, поэтому мы можем делать что-либо в "test2"! Преимущество в том, что нам не нужно использовать стандартную схему html, которая отображает диалог выбора, и если я сам использую определенную схему, страница не будет переходить на неправильную страницу! Я китайский, мой английский нехорошо, надеюсь, что все могут понять меня и позволить другим знать резолюцию.

Ответ 4

Вы можете использовать Android Intents. Вы можете создать якорь намерения для запуска приложения. Если приложение не установлено, браузер ищет имя пакета, указанное в якоре намерений. Мы также можем предоставить URL-адрес Fall Back.

Пример:

<a href="intent://scan/#Intent;scheme=zxing package=com.google.zxing.client.android;end"> Take a QR code </a>

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

Я знаю, что это поздно, подумал, что это может помочь кому-то.