首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >如何检测设备是否为台式机和/或移动设备,以及是否使用AngularJS进行wifi连接

如何检测设备是否为台式机和/或移动设备,以及是否使用AngularJS进行wifi连接
EN

Stack Overflow用户
提问于 2017-01-03 03:48:03
回答 3查看 72.8K关注 0票数 24

我做过一些关于SO的研究,但类似的问答是为了检测它是否有连接,而不是关于连接类型。

我的网站的目的是,如果用户使用手机(手机或平板电脑)和wifi,则播放视频剪辑;如果用户使用移动设备而不是wifi,则播放视频剪辑;如果用户不在移动设备上,则播放视频剪辑。

不同行为的原因是为了避免由于视频剪辑的相对较大的尺寸而对用户可能发生的额外费用。这与速度无关-如今LTE与wifi的速度差异可能很小;更多的是考虑到用户在没有wifi连接的情况下需要为数据使用付费。

所以我的问题是,使用AngularJS(<2.0),1)如何检测设备是台式机还是移动设备2)如何检测设备是否连接到wifi

(我猜对于Q1来说,后备方案是使用Bootstrap @media,但这并不理想。)

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2017-01-03 03:55:15

你不需要Angular来做这样的检查。

要检测设备是台式机还是移动设备,请使用navigator.userAgent,请参阅此answer

要检测连接类型,请使用navigator.connection,请参阅此answer

小心,此接口支持不是通用的,请参阅here

另一种方法是尝试这个plugin,它依赖于互联网速度检查,但我从未使用过它。

最后,如果你真的需要这些信息给智能手机用户,在Cordova上转换你的网站,然后分发你的应用程序。

票数 26
EN

Stack Overflow用户

发布于 2018-06-21 18:53:22

关于找出是否使用了什么设备,这个angular插件可以省去一些麻烦:ngx-device-detector

安装它:$ npm install ngx-device-detector --save,添加到构造函数中。然后调用this.deviceService.IsMobile()来检查设备类型是否为移动设备。它有其他方法来检查设备是平板电脑还是台式机,还有其他方法可以返回关于浏览器的完整信息。

票数 21
EN

Stack Overflow用户

发布于 2017-01-03 04:22:56

我鼓励开发人员使用功能检测,而不是浏览器或桌面/移动检测。例如,modernizr有一个针对低带宽连接的功能检测,尽管它并不是在所有浏览器上都有效:https://modernizr.com/download#lowbandwidth-setclasses&q=connect

正如它所说的,危险在于未知的设备被认为是快速的。

要了解桌面与移动设备的区别,可以使用一种技术来监听触摸事件。c.f.:What's the best way to detect a 'touch screen' device using JavaScript?

关于是否应该自动播放视频剪辑,如果它是HTML5播放器,它无论如何都不会在移动设备上自动播放,因为你提到的原因,除非它绑定到触摸事件(如点击播放)。

我已经通过“保存”之前的一个触摸事件来解决这个问题,比如使用视频播放器到达屏幕,然后重新使用该事件进行自动播放。尽管如此,请考虑一下自动播放是否真的是你想要的,因为很多用户都觉得它很烦人。

票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/41432533

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档