我有这样的要求,类似于Android Pit app-store实现的那样。
我需要检查Android应用是否已使用移动网页(PHP和JS)安装在设备上,如果已安装,请立即启动应用。
这些是Android pit使用的中间页面。
尚未安装应用 - http://www.androidpit.com/en/android/market/app-center-mobile?pname=com.ocito.laredoute
已安装应用 - http://www.androidpit.com/en/qrdl/com.mobage.ww.a692.Bahamut_Android
有谁知道如何实现这个?
答案 0 :(得分:16)
幸运的是,出于明显的隐私原因,这是不可能的。
您可以做的最接近的是,在应用程序中,有一个活动对某些URL结构有<intent-filter>
,并且在移动网站上有一个链接到匹配的URL。
如果用户单击该链接并安装了该应用,则该活动将成为该用户的选择器选项。
如果用户点击链接并且未安装应用程序,或者他们选择使用选择器中的Web浏览器,则会显示该URL上存在的任何网页(例如,如何下载应用程序的说明)
答案 1 :(得分:13)
有一种方法可以实现这一目标。找到this回答
出于安全和隐私原因,您无法检测是否安装了特定应用程序。但是如果安装了应用程序,你就可以开一个技巧,如果没有,可以打开它。
为此,您必须在应用的主要活动上创建一个intent-filter,以便在调用给定的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上创建重定向页面。当用户到达此地址时,您的服务器必须重定向到market:// details?id = com.your.app.package。
这样,当用户导航到http://www.myurl.com/openmyapp后没有创建Intent时,Web服务器将调用另一个URL。反过来,该网址将直接在应用页面上在设备上打开Google Play。
答案 2 :(得分:0)
如果是
<data
android:host="www.myurl.com"
android:pathPrefix="/openmyapp"
android:scheme="http" >
</data>
它将询问用户以哪种方式打开内容。
为避免这种情况或避免将您的应用程序连接到某些网址,您可以做另一种技巧来使用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>
redirect_to_app.php
,该文件将在用户安装应用程序的情况下起作用。<?php
header('Location: MyCustomScheme://MyCustomHost');
check_redirect_to_app.php
,该文件必须针对尚未安装您的应用的用户显示。...
<a href="https://play.google.com/store/apps/details?id=YOUR_APP_PACKAGE_NAME">Please install the 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
内容。答案 3 :(得分:0)
有一个更好的把戏。您将查看URL是否返回404,表示未找到。如果未安装任何应用,URL将不起作用。
答案 4 :(得分:0)
您可以使用手机上的浏览器完成此操作
intent://scan/#Intent;scheme=clashofclans;package=com.supercell.clashofclans;S.browser_fallback_url=https%3A%2F%2Fplay.google.com%2Fstore%2Fapps%2Fdetails%3Fid%3Dcom.supercell.clashofclans&%26referrer%3Dkinlan;end
intent://scan/#Intent;scheme=vnd.youtube://www.youtube.com/watch?v=QXhoNI4O99A;package=com.google.android.youtube;S.browser_fallback_url=https%3A%2F%2Fplay.google.com%2Fstore%2Fapps%2Fdetails%3Fid%3Dcom.google.android.youtube&%26referrer%3Dkinlan;end
有问题的应用程序必须在AndroidManifest中具有该方案 种族冲突// 或其他方案