如何通知网站,应用程序已安装



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

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

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

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

有更好的方法吗?

是的,移动浏览器(它们自己)不能将应用程序的安装状态传递给web。但是,如果你不顾一切地执行这种行为,我有一个"狂野"的解决方案给你。

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

客户端(Android设备):

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

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

服务器端(Web Server):

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

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

建议解决方案的限制:该解决方案仅在用户使用移动数据(2g/3g/等)连接互联网的情况下才能100%准确地工作。由于使用移动数据,每次设备将由服务提供商颁发一个唯一的IP地址。

这在wi-fi连接中并不完美。在使用wi-fi浏览网页时,所有连接到同一wi-fi点的设备都会被分配相同的IP地址。所以可能会有这样一种情况,两部手机从同一个wi-fi点使用互联网,其中一部手机安装了你的应用程序,而另一部手机没有。这会混淆服务器。

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

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

你可以让你的应用程序用特定的URL对VIEW Intent做出反应,然后重定向到你网站上的那个URL,但这会让Android询问用户他们是想用你的应用程序还是浏览器打开这个URL,所以它是不透明的

可以有两个独立的url,如:www.yousite.com和www.app.yoursite.com。这样至少用户不会看到应用弹出窗口。

相关内容

最新更新