【问题标题】:how to tell if android user came from home screen app如何判断android用户是否来自主屏幕应用程序
【发布时间】:2013-03-11 17:54:43
【问题描述】:

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


【解决方案1】:

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

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

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

【讨论】:

  • 如何在不让用户手动操作的情况下将应用网址设置为其他网址?
  • 您可以使用 sendBroadcast 命令创建快捷方式,因此您可以在其中放置您想要的任何 url。对于代码本身,请查看这些链接:stackoverflow.com/a/3004542/878126stackoverflow.com/a/10343584/878126。祝你好运。如果您没有成功,请告诉我,我会亲自尝试。
  • 不知道,这在技术上并没有解决我的问题,但我赞成你至少把它恢复到零。
  • 我实际上并没有编写“应用程序”,这是将网站固定在主屏幕上,就像在 iOS 上一样。我认为这可能会引起一些混乱。
  • 我明白了。这是很成问题的,因为您所说的“主屏幕”只是 android 上的另一个应用程序(毕竟,用户可以使用他们想要的任何启动器),并且任何应用程序都可以以相同的方式运行。我建议如果可以的话,只需在服务器上设置一个不同的 url/query。例如 "www.yourwebsite.com/android?fromLauncher=true" 。我认为没有其他方法可以解决这个问题。
【解决方案2】:

简短的回答是“不”。

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

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

[...]

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

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

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

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

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

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

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

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

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

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

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

【讨论】:

    【解决方案3】:

    我会选择前面所说的简短答案:不。

    由于 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 会给你,想知道客户端上是否有活动的网络连接等。

    祝你好运!

    【讨论】:

      【解决方案4】:

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

      【讨论】:

        猜你喜欢
        • 2013-07-30
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2023-04-06
        • 2011-06-10
        • 1970-01-01
        相关资源
        最近更新 更多