2013-06-11 33 views
2

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

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

简单无用解决方案来考虑: 如果链接是从我的应用程序打开时,它扩展了一些行动,以确定该应用程序安装。
这是无用的,因为应用程序是足够的,所以开放网站不会给任何好处。

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

有没有更好的方法来做到这一点?

+0

浏览器经常提到安装的插件。可能在浏览器中注册一个虚拟插件(尽管您可能会发现您必须支持多种不同的浏览器,并且只覆盖70%的用例) – Tom

+0

这是缺少的上下文。你在说什么类型的链接?您在供应商文档中错过了哪些信息?供应商文档在哪里? “浏览网站”是什么意思?你能举出一个或两个这样的“浏览器”和“网站”的例子吗? – hakre

回答

0

是的,移动浏览器(自己)无法将应用程序安装状态传达给网站。但是,如果你急于实施这种行为,我已经为你提供了一个“WILD”解决方案。

该解决方案分为两个部分:

在你的应用程序,您需要:客户端(Android设备)/服务器端(网络)

客户端(Android设备)实施将持续监听网络状态变化的BroadcastReciever。每当接收到新的网络连接广播(例如,当用户打开移动数据时),您的应用程序应读取获取的IP地址并将其通知您的网络服务器(使用HttpURLConnection)。

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

服务器侧(Web服务器):

你的Web服务器将继续通过在其上安装了应用程序(场外在数据库中)的所有设备报告的所有IP地址的轨道。为避免重复输入,您可以为收到的每个IP地址记录确定一个到期/验证时间。

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

建议解决方案的局限性:只有当用户使用移动数据(2g/3g/etc)连接到互联网时,此解决方案才能以100%的准确度工作。由于使用移动数据,每次设备将由服务提供商发布唯一的IP地址。

这对于Wi-Fi连接完美无缺。使用Wi-Fi浏览时,所有连接到同一个Wi-Fi点的设备都被分配相同的IP地址。因此,可能会出现这样的情况,即两部手机使用的是同一个Wi-Fi网络的互联网,其中一部手机安装了您的应用程序,另一部手机没有。这会混淆服务器。

**此解决方案可能不会被强烈推荐,但也有一些小的修补程序可以使用,如果你没有得到任何其他的解决方案;)

0

这是不可能的,当然,浏览器不漏手机配置和安装的应用随机网站(我希望,还是要有人尽快将其修复)

你也许可以让你的应用程序反应的VIEW意图与某个网址,然后重定向到您的网站上的该网址,但这将使Android问用户,他们是否要打开您的应用程序或浏览器的URL,所以它不透明

+0

也许有一种方法可以让应用程序向浏览器传播关于它自己的知识吗? – Yarh

0

您可以有两个单独的网址如:www.yousite.com和www.app.yoursite.com。通过这种方式,至少用户无需从应用程序弹出。

相关问题