uni.getSystemInfo(OBJECT)

获取系统信息。

OBJECT 参数说明:

参数名类型必填说明
successFunction接口调用成功的回调
failFunction接口调用失败的回调函数
completeFunction接口调用结束的回调函数(调用成功、失败都会执行)

success 返回参数说明:

参数说明平台差异说明
brand手机品牌微信小程序
model手机型号
pixelRatio设备像素比
screenWidth屏幕宽度
screenHeight屏幕高度
windowWidth可使用窗口宽度
windowHeight可使用窗口高度
windowTop可使用窗口的顶部位置5+App、H5
windowBottom可使用窗口的底部位置5+App、H5
statusBarHeight状态栏的高度
language应用设置的语言
version引擎版本号微信小程序、5+App
system操作系统版本
platform客户端平台,值域为:iosandroid
fontSizeSetting用户字体大小设置。以“我-设置-通用-字体大小”中的设置为准,单位:px微信小程序
SDKVersion客户端基础库版本微信小程序、5+App
safeArea在竖屏正方向下的安全区域微信小程序

Tips

  • 屏幕高度=状态栏高度+原生导航栏高度+可使用窗口高度+原生tabbar高度
  • H5端,windowHeight不包含NavigationBar和TabBar的高度,windowTop等于NavigationBar高度,windowBottom等于TabBar高度,statusBarHeight为0safeArea 的结构
参数类型说明
leftNumber安全区域左上角横坐标
rightNumber安全区域右下角横坐标
topNumber安全区域左上角纵坐标
bottomNumber安全区域右下角纵坐标
widthNumber安全区域的宽度,单位逻辑像素
heightNumber安全区域的高度,单位逻辑像素

示例

  1. uni.getSystemInfo({
  2. success: function (res) {
  3. console.log(res.model);
  4. console.log(res.pixelRatio);
  5. console.log(res.windowWidth);
  6. console.log(res.windowHeight);
  7. console.log(res.language);
  8. console.log(res.version);
  9. console.log(res.platform);
  10. }
  11. });

uni.getSystemInfoSync()

获取系统信息同步接口。

同步返回参数说明

参数说明平台差异说明
brand手机品牌微信小程序、百度小程序
model手机型号
pixelRatio设备像素比
screenWidth屏幕宽度
screenHeight屏幕高度
windowWidth可使用窗口宽度
windowHeight可使用窗口高度
windowTop可使用窗口的顶部位置5+App、H5
windowBottom可使用窗口的底部位置5+App、H5
statusBarHeight状态栏的高度5+App、微信小程序、百度小程序
language应用设置的语言5+App、微信小程序、支付宝小程序、百度小程序
version引擎版本号5+App、微信小程序
system操作系统版本
platform客户端平台
fontSizeSetting用户字体大小设置。以“我-设置-通用-字体大小”中的设置为准,单位:px微信小程序、支付宝小程序、百度小程序
SDKVersion客户端基础库版本5+App、微信小程序、百度小程序、头条小程序
safeArea在竖屏正方向下的安全区域微信小程序

Tips

  • 使用注意同上getSystemInfosafeArea 的结构
参数类型说明
leftNumber安全区域左上角横坐标
rightNumber安全区域右下角横坐标
topNumber安全区域左上角纵坐标
bottomNumber安全区域右下角纵坐标
widthNumber安全区域的宽度,单位逻辑像素
heightNumber安全区域的高度,单位逻辑像素

示例

  1. try {
  2. const res = uni.getSystemInfoSync();
  3. console.log(res.model);
  4. console.log(res.pixelRatio);
  5. console.log(res.windowWidth);
  6. console.log(res.windowHeight);
  7. console.log(res.language);
  8. console.log(res.version);
  9. console.log(res.platform);
  10. } catch (e) {
  11. // error
  12. }

获取设备标记

H5、小程序、iOS,属于对用户隐私保护比较严格的平台,在这些平台很难获取有效的设备唯一标记。

Android已经改进用户隐私保护,在很多新手机上,获取imei等信息时需要弹框让用户授权。

  • H5平台:常用的方式是uv,即在uni.storage里存一个随机数,本质是存在浏览器的localstorage里。将随机数发给服务器,进行用户身份识别和统计。当然如果用户浏览器清空了localstorage、更换了浏览器、或使用隐私模式,那么就统计数据就会有误差。
  • 小程序平台:小程序也可以采用与H5类似的方式,在uni.storage里存一个随机数。如果想获取用户的微信唯一ID,也可以弹框请求用户授权。
  • App iOS平台:iOS并不提供imei的获取API,可通过plus.device.getInfo 可以获得设备的唯一标识(uuid),这个id其实也是一种随机数概念。卸载app重装会发生变化;iOS还有一个叫idfa的广告识别符,可通过Native.js实现,在社区中搜索可见。
  • App Android平台:Android也可以使用UUID,同iOS。但Android还能得到imei,在plus.device.getInfo 可以获得设备的国际移动设备身份码(imei)。注意很多新手机在获取imei时会弹框要求用户授权。plus.device.getInfo的API是从HBuilderX 2.0.3+开始提供的,老版需使用plus.devide.uuid或plus.device.imei。

uni.canIUse(String)

判断应用的 API,回调,参数,组件等是否在当前版本可用。

平台差异说明

5+AppH5微信小程序支付宝小程序百度小程序头条小程序
x

String 参数说明

使用 ${API}.${method}.${param}.${options} 或者 ${component}.${attribute}.${option} 方式来调用,例如:

  • ${API} 代表 API 名字
  • ${method} 代表调用方式,有效值为return, success, object, callback
  • ${param} 代表参数或者返回值
  • ${options} 代表参数的可选值
  • ${component} 代表组件名字
  • ${attribute} 代表组件属性
  • ${option} 代表组件属性的可选值示例
  1. uni.canIUse('getSystemInfoSync.return.screenWidth');
  2. uni.canIUse('getSystemInfo.success.screenWidth');
  3. uni.canIUse('showToast.object.image');
  4. uni.canIUse('request.object.method.GET');
  5. uni.canIUse('live-player');
  6. uni.canIUse('text.selectable');
  7. uni.canIUse('button.open-type.contact');

发现错误?想参与编辑?在 GitHub 上编辑此页面!