使用移动网页检测Android设备是否已安装在设备上 - PHP和JS

Sha*_*lin 13 javascript php jquery android

我有这样的要求,类似于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

有谁知道如何实现这个?

Com*_*are 16

幸运的是,出于明显的隐私原因,这是不可能的.

您可以做的最接近的是应用程序,具有<intent-filter>针对某些URL结构的活动,并且在移动网站中具有指向匹配URL的链接.

如果用户单击该链接并安装了该应用程序,则该活动将成为该用户的选择器选项.

如果用户单击链接并且未安装应用程序,或者他们选择坚持使用选择器中的Web浏览器,则将显示该URL上存在的任何网页(例如,如何下载应用程序的说明).

  • @Unicorn:如果没有安装该应用程序,点击该链接将显示任何URL的常规Web浏览器.假设您控制URL(例如,它指向您的Web服务器),您可以让该URL返回一个网页,该网页解释了下载应用程序的优点,甚至可能使用"market:"链接.但是,即使安装了应用程序,用户仍可能会看到该网页,因为他们可能会在选择器中选择Web浏览器,而不是选择您的应用程序.因此,请确保该页面上的散文涵盖了这种可能性. (2认同)

AL̲*_*̲̳I 15

有一种方法可以实现这一目标.找到了这个答案

出于安全和隐私原因,您无法检测是否安装了特定应用程序.但是,如果安装了应用程序,您就可以开启该应用程序,如果不是,则可以打开其Google Play页面.

为此,您必须在应用的主要活动上创建一个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> 
Run Code Online (Sandbox Code Playgroud)

解释:当用户导航到http://www.myurl.com/openmyapp时,如果安装了应用程序,将创建一个intent并显示Activity.

但是如果用户没有安装应用程序呢?然后,您需要在http://www.myurl.com/openmyapp/index.html上创建重定向页面.当用户到达此地址时,您的服务器必须重定向到market:// details?id = com.your.app.package.

这样,当用户导航到http://www.myurl.com/openmyapp后没有创建Intent时,Web服务器将调用另一个URL.反过来,该网址将直接在应用页面上在设备上打开Goog​​le Play.