客户端检测之软件与硬件检测
一 识别浏览器与操作系统
这些属性的值的初始化取决于浏览器和设备状态
属性 | 作用 | 类型 | 参数 | 例子 | 特殊 |
navigator.oscpu | 通常对应用户代理字符串中操作系统/系统架构相关信息 | 字符串 | / | 例子1 | |
navigator.vendor | 通常包含浏览器开发商信息 | 字符串 | / | 例子2 | |
navigator.platform | 通常表示浏览器所在的操作系统 | 字符串 | / | 例子3 | |
screen.colorDepth && screen.pixelDepth | 返回一样的值,即显示器每像素颜色的位深 | / | / | 例子4 | 根据CSS对象模型(CSSOM)规范 |
screen.orientation |
返回一个ScreenOrientation对象,其中包含Screen Orientation API定义的屏幕信息(属性:angle、type) |
/ |
/ |
例子5 |
例子5:
angle:返回相对于默认状态下屏幕的角度
type:返回4种枚举值之一
- portrait-primary
- portrait-secondary
- landscape-primary
- landscape-secondary
例子1:
例子2:
例子3:
例子4:
二 浏览器元数据
作用:可以提供浏览器和操作系统的状态信息
API 1 : Geolocation API
调用对象:navigator.geolocation
作用:可以让浏览器脚本感知当前设备的地理位置(只在安全执行环境,通过HTTPS获取的脚本)中可用
地理位置信息的主要来源是GPS和IP地址、射频识别(RFID)、WiFi及蓝牙Mac地址、GSM/CDMA蜂窝ID以及用户输入等信息
方法:
- getCurrentPosition()
- 作用:要获取浏览器当前的位置
(成功回调是第一个参数,失败回调是第二个参数,PositionOptions对象是第三个参数) - 获取成功的返回值:一个包含坐标信息的Coordinates对象(coords))+ 一个表示查询时间的时间戳(timestamp)
- Coordinates对象:
- 标准格式的经度和纬度: latitude longitude
- 以米为单位的精度:accuracy
- 海拔高度:altitude
- 精度值:altitudeAccuracy
- 设备每秒移动的速度:speed
- 朝向:heading
- Coordinates对象:
- 作用:要获取浏览器当前的位置
// getCurrentPosition()会以position 对象为参数调用传入的回调函数
navigator.geolocation.getCurrentPosition((position) => p = position);
console.log(p.timestamp); // 1525364883361
console.log(p.coords); // Coordinates {...}
console.log(p.coords.latitude, p.coords.longitude); // 37.4854409, -122.2325506
console.log(p.coords.accuracy); // 58
console.log(p.coords.altitude); // -8.800000190734863
console.log(p.coords.altitudeAccuracy); // 200
- 获取失败的返回值:
- PositionError对象:
- 属性:
- code:
错误 定义 PERMISSION_DENIED 浏览器未被运行访问设备位置 POSITION_UNAVAILABLE 系统无法返回任何位置信息 TIMEOUT 系统不能在超时时间内返回位置信息 - message:
- 属性:
- PositionError对象:
// 浏览器会弹出确认对话框请用户允许访问Geolocation API
// 这个例子显示了用户拒绝之后的结果
navigator.geolocation.getCurrentPosition( () => {}, (e) => { console.log(e.code); // 1 console.log(e.message); // User denied Geolocation }
); // 这个例子展示了在不安全的上下文中执行代码的结果
navigator.geolocation.getCurrentPosition( () => {}, (e) => { console.log(e.code); // 1 console.log(e.message); // Only secure origins are allowed }
);
- PositionOptions对象:
属性 定义 值 enableHighAccuracy 设备返回精确的坐标 布尔值,
true表示返回的值应该尽量精确,
默认值为false
timeout 表示在以timeout状态调用错误回调函数之前等待的最长时间 毫秒 maximumAge 表示返回坐标的最长有效期 毫秒
API 2: Connection State && NetworkInfomation API
API 3: Battery Status API
浏览器可以访问设备电池及充电状态的信息
navigator.getBattery()方法会返回一个期约实例,解决为一个BatteryManager对象
navigator.getBattery().then((b) => console.log(b));
// BatteryManager { ... }
只读属性:(提供了设备电池的相关信息)
属性 | 定义 | 类型 | 返回值 |
charging | 表示设备当前是否正接入电源充电 | boolean | 有电池,返回true |
chargingTime | 表示预计离电量充满还有多少秒 | int | 如果电池已充满或设备没有电池,返回0 |
dischargingTime | 表示预计离电量耗尽还有多少秒 | int | 如果设备没有电池,返回Infinity |
level | 表示电量百分比 | float |
电量完全耗尽返回0.0 电池充满返回1.0 如果设备没有电池,则返回1.0 |
事件属性:(可用于设置在相应的电池事件发生时调用的回调函数)
- onchargingchange
- onchargingtimechange
- ondischargingtimechange
- onlevelchange
navigator.getBattery().then((battery) => { // 添加充电状态变化时的处理程序 const chargingChangeHandler = () => console.log('chargingchange'); battery.onchargingchange = chargingChangeHandler; // 或 battery.addEventListener('chargingchange', chargingChangeHandler); // 添加充电时间变化时的处理程序 const chargingTimeChangeHandler = () => console.log('chargingtimechange'); battery.onchargingtimechange = chargingTimeChangeHandler; // 或 battery.addEventListener('chargingtimechange', chargingTimeChangeHandler); // 添加放电时间变化时的处理程序 const dischargingTimeChangeHandler = () => console.log('dischargingtimechange'); battery.ondischargingtimechange = dischargingTimeChangeHandler; // 或 battery.addEventListener('dischargingtimechange', dischargingTimeChangeHandler); // 添加电量百分比变化时的处理程序 const levelChangeHandler = () => console.log('levelchange'); battery.onlevelchange = levelChangeHandler; // 或 battery.addEventListener('levelchange', levelChangeHandler);
})
三 硬件
- 处理器核心数
navigator.hardwareConcurrency属性返回浏览器支持的逻辑处理器核心数量,包含表示核心数的一个整数值
- 设备内存大小
navigator.deviceMemory属性返回设备大致的系统内存大小,包含单位为GB的浮点数
- 最大触点数
navigator.maxTouchPoints属性返回触摸屏支持的最大关联触点数量,包含一个整数值
客户端检测之软件与硬件检测相关推荐
- 测试手机硬件检测软件是什么,手机硬件检测工具_手机硬件检测软件_手机硬件检测软件哪个好【最新】-太平洋电脑网...
win7系统怎么检测电脑硬件的散热功能 win7系统怎么检测电脑硬件的散热功能 驱动人生硬件检测功能 驱动人生使用方法 驱动人生硬件检测功能使用方法来咯~有些朋友不知道驱动人生硬件检测怎么用,这个实用 ...
- 电脑手机硬件测试软件,手机硬件检测工具_手机硬件检测软件_手机硬件检测软件哪个好【最新】-太平洋电脑网...
win7系统怎么检测电脑硬件的散热功能 win7系统怎么检测电脑硬件的散热功能 驱动人生硬件检测功能 驱动人生使用方法 驱动人生硬件检测功能使用方法来咯~有些朋友不知道驱动人生硬件检测怎么用,这个实用 ...
- 电脑手机硬件测试软件,手机硬件检测:Z-DeviceTest
手机硬件检测:Z-DeviceTest官方版是款针对手机硬件所打造的检测工具.手机硬件检测:Z-DeviceTest能够检测硬件和OS,硬件上不仅仅是电池.cpu.内存.OS,甚至连usb.扬声器.指 ...
- 人脸检测颜值软件_颜值检测软件下载-颜值检测 安卓版v1.0-PC6安卓网
颜值检测app是一款非常趣味好玩娱乐性质强的人脸检测换脸软件,人脸检测app拥有人脸对比.人脸搜索.五官检测诸多功能,上传自己的照片可随时通过颜值检测器轻松测试颜值. 软件介绍 颜值检测app一键测试 ...
- 怎么检测计算机硬件损坏,笔记本硬件检测 电脑硬件损坏检测工具
191路由网导读:原标题:"笔记本硬件检测,详细教您笔记本怎么检测硬件"最新电脑问题教程分享. - 来源:191路由网 - 编辑:爱装机. 笔记本已经成为我们的生活的一部分了,有的 ...
- 【引用】免费论文检测 系统 软件 论文免费检测 论文抄袭检测大师 万方数据论文相似性检测系统 万方论文检测...
转载请注明:http://jiancelunwen.blog.163.com/blog/static/2031182372009420928035/ 免费论文检测+论文检测免费+论文抄袭检测大师 +论 ...
- 人脸检测颜值软件_颜值检测软件下载-颜值检测免费版下载-ROM之家
详情 颜值检测app是一款非常有趣的颜值测试软件,使用这款软件可以帮助用户在线测试自己的颜值多少分哦,看自己的颜值在不在线,同时还能测试年龄等多种功能,测算照片中人物的年龄.颜值,只需拍摄或从相册选择 ...
- 常用优化与测试系统软件,推荐几款常用的cpu硬件检测软件以及cpu优化软件
经常看到有朋友在问怎么查看cpu.html" target="_blank">cpu温度,如何检测cpu或者cpu温度过高怎么办?今天笔者为大家推荐几款常用的cpu ...
- 硬件狗狗(电脑硬件检测软件)官方中文版V3.0.1.18 | 最新版硬件狗狗下载 | 硬件狗狗和鲁大师哪个好用?
硬件狗狗是一款短小精悍且相当实用的纯净版专业电脑硬件检测软件,专业.安全.简洁是其最大的特色,迄今为止已有20年的持续不间断开发时间,并有多年资深硬件老编提供强力技术支持,科技蓝UI轻量简洁,身轻如燕 ...
最新文章
- linux 魔兽 qq
- NetMagic Simple Overview
- springboot使用restTemplate post提交值 restTemplate post值
- 读入一组文本行,打印最长的文本行
- 进制A~Z,全字母26进制转化
- JS根据文本框内容匹配并高亮显示
- Youtube最佳Red5 官方视频下载指南,字幕【亲测成功】
- Java 编解码问题
- 手机壁纸 NBA群星高清壁纸
- linux系统英伟达gpu驱动卸载_英伟达显卡驱动程序被发现强制捆绑 官方已火速撤回驱动下载链接...
- 关于SET ANSI_PADDING的用法
- ACL技术原理和实验(华为设备)
- Bash基础——快捷键
- java获取窗口_获取窗口句柄
- adobe flash player android 4.4,adobe flash player最新版
- TFmini Plus 开关量输出说明
- asp.net面试题
- 测试使用linux日志定位BUG,Web测试中定位bug方法
- Amino-PEG8-acid,NH2-PEG8-COOH相关的物理性质,756526-04-2
- 跨平台的EA交易: 信号