我做过一些关于SO的研究,但类似的问答是为了检测它是否有连接,而不是关于连接类型。
我的网站的目的是,如果用户使用手机(手机或平板电脑)和wifi,则播放视频剪辑;如果用户使用移动设备而不是wifi,则播放视频剪辑;如果用户不在移动设备上,则播放视频剪辑。
不同行为的原因是为了避免由于视频剪辑的相对较大的尺寸而对用户可能发生的额外费用。这与速度无关-如今LTE与wifi的速度差异可能很小;更多的是考虑到用户在没有wifi连接的情况下需要为数据使用付费。
所以我的问题是,使用AngularJS(<2.0),1)如何检测设备是台式机还是移动设备2)如何检测设备是否连接到wifi
(我猜对于Q1来说,后备方案是使用Bootstrap @media,但这并不理想。)
发布于 2017-01-03 03:55:15
发布于 2018-06-21 18:53:22
关于找出是否使用了什么设备,这个angular插件可以省去一些麻烦:ngx-device-detector
安装它:$ npm install ngx-device-detector --save,添加到构造函数中。然后调用this.deviceService.IsMobile()来检查设备类型是否为移动设备。它有其他方法来检查设备是平板电脑还是台式机,还有其他方法可以返回关于浏览器的完整信息。
发布于 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播放器,它无论如何都不会在移动设备上自动播放,因为你提到的原因,除非它绑定到触摸事件(如点击播放)。
我已经通过“保存”之前的一个触摸事件来解决这个问题,比如使用视频播放器到达屏幕,然后重新使用该事件进行自动播放。尽管如此,请考虑一下自动播放是否真的是你想要的,因为很多用户都觉得它很烦人。
https://stackoverflow.com/questions/41432533
复制相似问题