Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/187.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 如何判断android用户是否来自主屏幕应用程序_Javascript_Android_Mobile_Detection - Fatal编程技术网

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

Javascript 如何判断android用户是否来自主屏幕应用程序,javascript,android,mobile,detection,Javascript,Android,Mobile,Detection,有没有办法判断用户是否通过主屏幕访问您的网站?使用iOS,我可以使用以下javascript代码检测用户是否通过主屏幕快捷方式打开页面: if (('standalone' in navigator && !navigator.standalone && (/iphone|ipod|ipad/gi).test(navigator.platform) && (/Safari/i).test(navigator.appVersion)) {

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

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

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

此外,如果您制作的应用程序可以像启动器和web之间的管道一样,您可以设置引用应用程序的意图,这样您就可以假定链接是从启动器打开的。

简短的回答是“否”

从Android主屏幕上启动的网站书签小部件不包括引用程序(我只是)

此外,在Android上本地安装web应用程序/为其添加书签的机制与iPhone完全不同,而且肯定没有问题跟踪程序功能齐全

[……]

我明确支持这一请求,因为无法提供 在没有实现 应用程序的浅外壳,只包含一个WebView(或实现一个WebView) 流行的框架,如PhoneGap或apparat.io)

这就导致了你必须支付25美元才能提供 Android上的原生Web应用程序。同样的东西在iOS上也是免费的 设备-更加优雅

顺便说一句,上面的网站所有者有点错误。在安卓系统中,由于安卓系统使用免费的自签名证书,他可以从自己的网站上提供应用程序,而无需支付25美元通过市场/谷歌游戏。他想,他的主要观点仍然存在。这不是一件容易的事情,除非他投入大量的精力,否则最终的结果可能不会很有用

相比之下,我想说的是,在安卓系统上,与iOS相比,其精简的书签小部件主屏幕功能几乎从未被使用过

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

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

另外,我认为自己是一个强大的用户,是一个非常热衷于使用许多特性的早期用户,而且我确实使用了一些不太常用的Android小部件,但是根据HTC,我只是其中的一部分(除非是天气、时钟或音乐,这显然是人们在首次设置手机时使用的!)p> 即使对我这个喜欢安卓小部件(尤其是安卓平板电脑上的安卓小部件)的人来说,更大的书签管理器小部件给了我太少的控制,对我来说也没有吸引力,而单一的网站书签小部件给了我不错的控制,对我来说不是很好,我从不使用它,因为它只是一个红色的书签,中间有一个小图标。p> 无论如何,回到你原来的问题上来

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


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

我会用前面提到的简短答案回答:不

由于JS安全限制,Android浏览器不允许任何网站访问有关打开浏览器或其他东西的意图的信息

但是……等等……有一种方法可以将网站上的JavaScript绑定到Android代码(),因此,考虑到该网站已经开发,我要做的是开发一个简单的Android应用程序,该应用程序带有一个漂亮的图标和一个启用JS并指向该网站的图标,因此它可以作为客户端或包装器应用程序,比方说……”。在WebView上,您可以阻止其他网站的导航,这样用户就不能去其他任何地方,用户将不得不使用您的网站导航。然后您可以如上所述将Android代码绑定到JavaScript,以将Android环境中的方法公开到您网站中的JavaScript中

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


祝你好运!

如果你说的是a,你应该能够向
开始url
添加一个查询参数。例如,请参阅。

如何在不让用户手动操作的情况下将应用程序url设置为其他url?你可以使用sendBroadca创建快捷方式