如何判断android用户是否来自主屏幕应用程序

时间:2013-03-22 00:44:00

标签: javascript android mobile detection

有没有办法判断用户是否通过主屏幕切换来到您的网站?使用iOS,我可以使用以下javascript代码来检测用户是否通过主屏幕快捷方式打开页面:

if (('standalone' in navigator && !navigator.standalone && (/iphone|ipod|ipad/gi).test(navigator.platform) && (/Safari/i).test(navigator.appVersion)) {
            window.location = 'index2.html';
        }

我发现虽然你可以用android做任何类似的东西。任何帮助将不胜感激:))

4 个答案:

答案 0 :(得分:4)

简短的回答是“不”。

从Android主屏幕启动的网站书签小部件不包含引用者(我只是checked)。

此外,在Android上本地安装/加入网络应用程序的机制与iPhone完全不同,并且绝对不像问题跟踪器上的全功能(reported)。

  

[...]

     

我明确支持这一要求,因为无法提供   当时没有实现的Android中的本机WebApp   应用程序的浅壳,只包含一个WebView(或实现一个   流行的框架,如PhoneGap或apparat.io)。

     

这导致您必须支付25美元才能提供   Android上的原生WebApp。同样的东西在iOS上是免费的   设备 - 更优雅

顺便说一句,上面的网站所有者有点不对劲。在Android中,由于Android使用免费的自签名证书,他可以从他的网站上提供该应用程序而无需支付25美元来通过市场/ Google Play。想到,他的主要观点仍然存在。这不是一件容易的事情,最终结果可能不太可用,除非他付出了大量的工作。

相比较而言,我认为在Android上,与iOS相比,它的精简书签小部件主屏功能几乎从未使用过。

例如,我个人使用主要的Chrome浏览器,谷歌搜索或现有的应用程序,因为我的主要入口指向我访问的任何网站。

在上面的屏幕截图中,左侧的三个红色书签实际上是网络书签。只是为了将它与我真正喜欢的非网页书签小部件进行对比,我还在右侧放置了两个电子书小部件。

此外,我认为自己是一个高级用户和许多功能的早期采用者,我确实使用了一些较少使用的Android小部件,但根据HTC,我只是10% of people的一部分。所以(除非它是天气,时钟或音乐,显然人们在他们第一次设置手机时会使用!)。

即使对我来说,喜欢Android小部件的人(特别是在我的Android平板电脑上),更大的书签管理器小部件让我对你的吸引力太小,而且单个网站书签小部件可以提供良好的控制,对我来说看起来不是很好,我从不使用它,因为它只是一个红色书签,中间嵌入了一个小小的图标。

无论如何,回到原来的问题。

没有编写一个小工具,您的网站的每个Android用户都愿意在他/她的设备上安装。您唯一的选择是尝试在用户尝试为您的网站添加书签时进行干预。干预只会在用户不设置清除任何附加到其上的url参数的书签时才会起作用。例如,您可以将用户当前浏览您网站的日期附加到网址,如果用户为该网址添加了书签,那么相同的网址可能会在更晚的日期出现。这将是尝试查看用户是否来自书签(或某个地方保存的链接)的一种方式。

但即使您可以这样做,也只会告诉您用户是通过历史记录栏自动填充,还是通过主屏幕启动的书签来访问您的网站,还是仅通过普通的Chrome启动的书签,而不是仅仅输入直接解决(我没有提到谷歌搜索,因为用户使用谷歌搜索,谷歌至少会给你的参考者)。

答案 1 :(得分:1)

由于在主屏幕上创建的快捷方式使用与任何其他应用相同的意图(毕竟,启动器仍然是应用),这是不可能的。

但是,如果您自己创建了快捷方式,则可以将URL设置为不同的快捷方式,以便知道它可以来自启动器。

此外,如果您制作的应用程序可能像启动器和网络之间的管道,您可以设置引用应用程序的意图,并且可以假设该链接是从启动器打开的。< / p>

答案 2 :(得分:1)

我会回答之前所说的简短回答:否。

由于JS安全限制,Android浏览器不会让任何网站访问有关用于打开浏览器或其他内容的INTENT的信息。

但是......等等......有一种方法可以将网站上的JavaScript绑定到Android代码(http://developer.android.com/guide/webapps/webview.html#BindingJavaScript),所以,鉴于网站已经开发,我要做的就是开发一个简单的Android应用程序,带有一个漂亮的图标和一个WebView,启用了JS并指向网站,因此它可以作为客户端或包装应用程序来说......“http://thewebsite.com?client=android”。在WebView上,您可以阻止导航到其他站点,因此用户无法前往其他任何地方,用户将不得不使用您的站点导航。然后,您可以将Android代码绑定到JavaScript,如上所述,以便将Android环境中的方法暴露给您网站中的JavaScript。

不要让人们为您的网站添加快捷方式,而是给他们一个链接,从Google Play商店下载您的小包装应用。这样,您就可以知道谁在Android设备上使用您的网站/ WebApp,并且由于您拥有该应用程序,您可以访问INTENT并了解Android操作系统信息,并从您网站的JS获取有关该设备的更多信息。 UserAgent会给你,比如知道客户端上是否有活动的网络连接等。

祝你好运!

答案 3 :(得分:0)

如果您正在谈论PWA installed to the homescreen,则应该能够向start_url添加查询参数。有关示例,请参见https://developers.google.com/web/fundamentals/web-app-manifest/#create_the_manifest