如何分辨android用户是否来自主屏幕应用

问题描述 投票:10回答:4

是否有办法判断用户是否通过主屏幕快捷方式访问了您的网站?使用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类似的功能。任何帮助将不胜感激:)

javascript android mobile detection
4个回答
4
投票

简短的回答是“不。”

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

此外,在Android上本地安装/标记Web应用程序的机制与在iPhone上完全不同,并且绝对没有功能齐全(如问题跟踪器上的reported)。

[...]

我明确同意此要求,因为无法提供当时未在Android中实现原生WebApp应用程序的浅层外壳,仅包含一个WebView(或实现一个流行的框架(如PhoneGap或apparat.io)。

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

顺便说一句,上面的网站所有者有一点错。在android中,由于Android使用免费的自签名证书,因此他只需从网站上提供该应用即可,无需支付25美元即可通过Market / Google Play进行交易。想想,他的主要观点仍然存在。这不是一件容易的事,除非他投入大量工作,否则最终结果可能用处不大。

[相对而言,我想说的是,与iOS相比,在Android上几乎没有使用过其精简的书签小部件主屏幕功能。

例如,我个人使用主要的chrome浏览器,google搜索或现有的应用程序作为我访问的任何网站的主要入口。

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

[此外,我认为自己是许多功能的超级用户和狂热的采用者,并且我确实使用了一些使用较少的Android小部件,但根据HTC的说法,我只是10% of people的一部分(除非它是用于天气,时钟或音乐的,显然人们在首次设置手机时确实会使用它!?)。

[甚至对我来说,一个喜欢Android小部件的人(尤其是在我的Android平板电脑上),较大的书签管理器小部件给我的控制力太小,无法吸引我,而单个网站书签小部件却提供了不错的控制权,对我来说看起来不太好,我也从不使用它,因为它只是一个红色书签,中间嵌入了一个小图标。

无论如何,请回到您的原始问题。

编写了一个小的实用程序,您的站点的每个Android用户都愿意将其安装在其设备上。您唯一的选择是在用户尝试为您的网站添加书签时尝试进行干预。并且干预仅在用户设置书签时不尝试清除附加到该书签的任何url参数的书签时才起作用。例如,您可以将用户当前浏览您的网站的日期附加到一个URL,并且如果用户将该URL加为书签,则该URL可能会在以后出现。那将是尝试查看用户是否来自书签(或某个位置的已保存链接)的一种方式。

但是,即使您可以这样做,它也只会告诉您用户是通过历史记录栏自动完成功能,通过主屏幕启动的书签还是通过普通的Chrome启动的书签访问您的网站,而不仅仅是输入地址直接输入(我没有提及google搜索,因为在使用google搜索的用户中,google至少会为您提供推荐人)。


1
投票

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

但是,如果您自己创建了快捷方式,则可以将URL设置为另一个,由此可以知道它可能来自启动器。

此外,如果您制作的应用程序就像启动器和网络之间的管道,则可以设置引用该应用程序的意图,并以此为前提,假定链接是从启动器打开的。


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设备使用您的Website / WebApp,并且由于您拥有该应用程序,因此您可以访问INTENT并了解Android OS信息,并且可以从您站点中的JS获得有关该设备的更多信息。 UserAgent会给您,例如要知道客户端上是否存在活动的网络连接,等等。

祝你好运!


0
投票

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

© www.soinside.com 2019 - 2024. All rights reserved.