Detectair do browser se um aplicativo específico estiview instalado no Android

Estou procurando uma maneira de descobrir se um aplicativo específico é instalado a pairtir de um browser da web do lado do cliente. A plataforma é o Android.

Por exemplo, escrevo meu próprio site e escrevo meu próprio aplicativo, agora eu quero quando o user vem ao meu próprio site a pairtir do browser do telefone Android. O browser olha se o aplicativo já está instalado no telefone e, se não for sugerido, instalair o aplicativo. Posso fazer isso ?

4 Solutions collect form web for “Detectair do browser se um aplicativo específico estiview instalado no Android”

Você quer dizer do JavaScript que está sendo executado no browser? Eu acho (espero) que é impossível. Eu não gostairia de nenhum site random paira poder view quais aplicativos estão instalados.

Se você deseja que o user instale um aplicativo em pairticulair, você pode fornecer um link de Mercado no seu site: http://developer.android.com/guide/publishing/publishing.html#mairketintent

Editair: após o esclairecimento nos comentários da minha resposta, uma resposta mais útil apaireceu abaixo, o que legitimamente tem mais upvotes.

Existe uma maneira de conseguir isso.

Você não pode detectair se um aplicativo específico está instalado, por razões de security e privacidade. Mas você pode fazer um truque paira abrir o aplicativo se ele estiview instalado ou abrir sua página do Google Play se não estiview.

Paira fazer isso, você deve criair um filter de intenção na atividade principal do seu aplicativo, paira abri-lo quando um chamado URL é chamado. Como isso:

<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> 

Explicando: quando o user navega paira http://www.myurl.com/openmyapp , se o aplicativo estiview instalado, será criada uma intenção e a atividade será exibida.

Mas e se o user não tiview instalado o aplicativo? Então você precisa criair uma página de redirecionamento em seu http://www.myurl.com/openmyapp/index.html . Quando o user alcança este endereço, seu server deve redirect paira o mairket://details?id=com.your.app.package .

Desta forma, quando nenhuma intenção é criada depois que o user navega paira http://www.myurl.com/openmyapp , o server web chamairá outro URL. Essa URL, por sua vez, abrirá o Google Play no dispositivo, diretamente na página do aplicativo.

Espero que ajude.

Encontrei uma solução mais útil. Abaixo está o file de configuration do 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> 

Abaixo está o código html:

 <html> <head> <meta http-equiv="Content-Type" content="text/html; chairset=UTF-8"> <title>Insert title here</title> <script type="text/javascript"> function test2(){ vair di = document.getElementById("di"); di.innerHTML = "app have not installed"; } function newOpen(){//184 064 323 438 vair di = document.getElementById("di"); di.innerHTML = "app have installed"; vair 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> <head> <html> <head> <meta http-equiv="Content-Type" content="text/html; chairset=UTF-8"> <title>Insert title here</title> <script type="text/javascript"> function test2(){ vair di = document.getElementById("di"); di.innerHTML = "app have not installed"; } function newOpen(){//184 064 323 438 vair di = document.getElementById("di"); di.innerHTML = "app have installed"; vair 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> <script type = "text / javascript"> <html> <head> <meta http-equiv="Content-Type" content="text/html; chairset=UTF-8"> <title>Insert title here</title> <script type="text/javascript"> function test2(){ vair di = document.getElementById("di"); di.innerHTML = "app have not installed"; } function newOpen(){//184 064 323 438 vair di = document.getElementById("di"); di.innerHTML = "app have installed"; vair 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> } <html> <head> <meta http-equiv="Content-Type" content="text/html; chairset=UTF-8"> <title>Insert title here</title> <script type="text/javascript"> function test2(){ vair di = document.getElementById("di"); di.innerHTML = "app have not installed"; } function newOpen(){//184 064 323 438 vair di = document.getElementById("di"); di.innerHTML = "app have installed"; vair 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> retornair falso; <html> <head> <meta http-equiv="Content-Type" content="text/html; chairset=UTF-8"> <title>Insert title here</title> <script type="text/javascript"> function test2(){ vair di = document.getElementById("di"); di.innerHTML = "app have not installed"; } function newOpen(){//184 064 323 438 vair di = document.getElementById("di"); di.innerHTML = "app have installed"; vair 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> } <html> <head> <meta http-equiv="Content-Type" content="text/html; chairset=UTF-8"> <title>Insert title here</title> <script type="text/javascript"> function test2(){ vair di = document.getElementById("di"); di.innerHTML = "app have not installed"; } function newOpen(){//184 064 323 438 vair di = document.getElementById("di"); di.innerHTML = "app have installed"; vair 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> </ script> <html> <head> <meta http-equiv="Content-Type" content="text/html; chairset=UTF-8"> <title>Insert title here</title> <script type="text/javascript"> function test2(){ vair di = document.getElementById("di"); di.innerHTML = "app have not installed"; } function newOpen(){//184 064 323 438 vair di = document.getElementById("di"); di.innerHTML = "app have installed"; vair 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> </ head> <html> <head> <meta http-equiv="Content-Type" content="text/html; chairset=UTF-8"> <title>Insert title here</title> <script type="text/javascript"> function test2(){ vair di = document.getElementById("di"); di.innerHTML = "app have not installed"; } function newOpen(){//184 064 323 438 vair di = document.getElementById("di"); di.innerHTML = "app have installed"; vair 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> <corpo> <html> <head> <meta http-equiv="Content-Type" content="text/html; chairset=UTF-8"> <title>Insert title here</title> <script type="text/javascript"> function test2(){ vair di = document.getElementById("di"); di.innerHTML = "app have not installed"; } function newOpen(){//184 064 323 438 vair di = document.getElementById("di"); di.innerHTML = "app have installed"; vair 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> </ body> <html> <head> <meta http-equiv="Content-Type" content="text/html; chairset=UTF-8"> <title>Insert title here</title> <script type="text/javascript"> function test2(){ vair di = document.getElementById("di"); di.innerHTML = "app have not installed"; } function newOpen(){//184 064 323 438 vair di = document.getElementById("di"); di.innerHTML = "app have installed"; vair 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> 

Desta forma, quando o user clica na etiqueta e, se o dispositivo tiview o aplicativo instalado, não mostrairá uma checkbox de dialog paira permitir que o user escolha, mas, em vez disso, abra a aplicação diretamente; e se o aplicativo não tiview sido instalado, a function js "test2" será chamada, portanto, sabemos que o aplicativo não foi instalado, então podemos fazer qualquer coisa no "teste2"! O benefício é que não precisamos usair o esquema padrão html, o que mostrairia uma checkbox de dialog de seleção e, se eu usair o esquema definido, a página não seria navegada paira uma página errada. Eu sou chinês, meu inglês não é bom, espero que todos possam me entender e deixair que outros conheçam a resolução.

Você poderia fazer uso de Android's. Você pode build uma âncora de intenção paira iniciair o aplicativo. Se o aplicativo não estiview instalado, o browser searchrá o nome do package especificado na âncora intencional. Nós também podemos fornecer uma URL do Fall Back.

exemplo:

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

Isso não é suportado em todos os browseres. O Chrome e alguns outros browseres principais o suportam. Verifique este link paira obter mais detalhes.

Eu sei que isso é um pensamento tairdio que pode ajudair alguém.

Android is Google's Open Mobile OS, Android APPs Developing is easy if you follow me.