10

有没有办法判断用户是否通过主屏幕快捷方式访问您的网站?使用 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

4 回答 4

4

最简洁的答案是不。”

从 Android 主屏幕启动的网站书签小部件不包含引用者(我刚刚检查过)。

此外,在 Android 上本地安装/为 Web 应用程序添加书签的机制与 iPhone 上的完全不同,而且绝对没有功能齐全(如问题跟踪器中所报告的那样)。

[...]

我明确支持这个请求,因为当时不可能在 Android 中提供一个看起来像原生的 WebApp,而不实现一个应用程序的浅外壳,只包含一个 WebView(或实现一个流行的框架,如 PhoneGap 或 apparat.io )。

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

顺便说一句,上面的网站所有者略有错误。在 android 中,他可以直接从他的网站上提供应用程序,而无需支付 25 美元通过 Market/Google Play,因为 Android 使用免费的自签名证书。想了想,他的重点依然存在。这不是一件容易的事,除非他投入大量工作,否则最终结果可能不是很有用。

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

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

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

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

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

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

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

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

于 2013-03-31T06:05:27.450 回答
1

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

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

此外,如果您创建的应用程序可以像启动器和 Web 之间的管道,您可以将意图设置为引用该应用程序,这样您就可以假设链接是从启动器打开的。

于 2013-03-25T22:23:41.560 回答
1

我会选择之前所说的简短回答:不。

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

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

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

祝你好运!

于 2013-04-01T16:24:19.060 回答
0

如果您正在谈论安装到主屏幕的 PWA,您应该能够将查询参数添加到start_url. 有关示例,请参阅https://developers.google.com/web/fundamentals/web-app-manifest/#create_the_manifest 。

于 2019-09-19T07:38:07.253 回答