2

当用户进入我的网站时,他们会收到一个建议安装的对话框my wonderful app。当用户按下接受按钮时,会弹出带有我的应用程序的游戏市场页面。仅当用户从电话浏览时才会出现此对话框。但是,即使用户已经拥有我的应用程序,也会弹出此对话框。因此,我对一种通知网站有关手机上存在/不存在应用程序的方式感兴趣。如果手机上已经安装了应用程序,则不应出现对话框。

phone w/o app -> browse site -> get dialoge box
phone with app -> browse site -> normal browsing

想到的简单而无用的解决方案:如果从我的应用程序打开链接,它会通过一些操作来扩展以识别该应用程序已安装。
没用,因为应用程序已经够用了,所以打开网站不会有任何好处。

msh提出了一个更高级的想法:给用户一个选项,哪个应用程序将打开一个链接。如果如上所述使用我的应用程序打开链接。

有一个更好的方法吗 ?

4

3 回答 3

0

当然不可能,浏览器不会泄露手机配置和安装的应用程序到随机网站(我希望,或者有人必须尽快修复它)

您可以让您的应用使用特定 URL 对 VIEW Intent 做出反应,然后重定向到您网站上的该 URL,但这会使 Android 询问用户是否要使用您的应用或浏览器打开此 URL,因此它不透明

于 2013-06-11T15:37:39.780 回答
0

您可以有两个单独的网址,例如:www.yousite.com 和 www.app.yoursite.com。这样,至少用户可以摆脱应用程序的弹出窗口。

于 2013-07-31T13:22:07.937 回答
0

是的,移动浏览器(单独)无法将应用程序安装状态传达给网络。但是,如果您不顾一切地实施此行为,我为您提供了一个“WILD”解决方案。

此解决方案分为两部分:客户端(Android 设备)/服务器端(Web)

客户端(在 Android 设备上):

在您的应用程序中,您需要实现一个BroadcastReciever持续监听网络状态变化的方法。每当收到新的可用网络连接的广播时(例如,当用户打开移动数据时),您的应用程序应读取获取的 IP 地址并将其传送到您的网络服务器(使用HttpURLConnection)。

通信 IP 地址将通知您的网络服务器,从该 IP 地址浏览您的网站的设备已经安装了您的应用程序。

服务器端(在 Web 服务器上):

您的网络服务器将跟踪安装您的应用程序的所有设备报告的所有 IP 地址(数据库中的偏离课程)。为避免多余的条目,您可以为收到的每个 IP 地址记录决定到期/验证时间。

现在,当您的服务器收到 Web 请求时,它会将请求客户端的 IP 与其数据库中保存的所有 IP 进行匹配。如果它找到匹配的 IP,则意味着 Web 请求来自已安装您的应用程序的设备。否则,您可以将用户定向到您应用的 Play 商店链接。

建议解决方案的局限性:此解决方案仅在用户使用移动数据(2g / 3g / 等)连接到互联网的情况下才能 100% 准确运行。由于使用移动数据,每次设备都会由服务提供商分配一个唯一的 IP 地址。

这不适用于 wi-fi 连接。使用 wi-fi 浏览时,连接到同一 wi-fi 点的所有设备都分配了相同的 IP 地址。因此,可能会出现两部手机从同一个 Wi-Fi 点使用互联网的情况,其中一部手机安装了您的应用程序,而另一部手机未安装。这会使服务器感到困惑。

** 可能不强烈推荐此解决方案,但如果您没有获得任何其他解决方案,可以与一些小修复一起使用;)

于 2013-08-06T07:17:43.883 回答