系统信息

通过 uni.getSystemInfo 获取设备信息

  1. uni.getSystemInfo({
  2. success: res => {
  3. console.log(JSON.stringify(res))
  4. }
  5. });

返回数据

  1. {
  2. errMsg:"getSystemInfo:ok",
  3. brand:"devtools", // 手机品牌
  4. model:"iPhone 6", // 手机型号
  5. system:"iOS 10.0.1", // 操作系统版本
  6. version:"6.6.3", // 引擎版本号
  7. pixelRatio:2, // 设备像素比
  8. screenWidth:375, // 屏幕宽度
  9. screenHeight:667, // 屏幕高度
  10. statusBarHeight:20, // 状态栏的高度
  11. language:"zh", // 应用设置的语言
  12. SDKVersion:"2.0.4", // 客户端基础库版本
  13. batteryLevel:100,
  14. benchmarkLevel:1,
  15. fontSizeSetting:16, // 用户字体大小设置
  16. platform:"devtools", // 客户端平台
  17. windowHeight:603, // 可使用窗口高度
  18. windowWidth:375 // 可使用窗口宽度
  19. }

以同步的方式获取:

  1. let info = uni.getSystemInfoSync()

成功回调的参数包括:

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

网络状态

通过 uni.getNetworkType 获取网络状态

  1. uni.getNetworkType({
  2. success: state => {
  3. console.log(JSON.stringify(state)); // {"errMsg":"getNetworkType:ok","networkType":"4g"}
  4. },
  5. fail: err => {
  6. console.log(JSON.stringify(err));
  7. }
  8. })

success 回调将带出一个 networkType 对象

networkType 有效值

说明 平台支持度
wifi wifi 网络
2g 2g 网络
3g 3g 网络
4g 4g 网络
ethernet 有线网络 5+App
unknown Android 下不常见的网络类型
none 无网络

监听网络变化

通过 uni.onNetworkStatusChange(CALLBACK) 可监听网络状态变化

  1. uni.onNetworkStatusChange(res => {
  2. console.log(res.isConnected);
  3. console.log(res.networkType);
  4. });

CALLBACK 返回参数

  • isConnected Boolean 当前是否有网络连接 头条小程序不支持
  • networkType String 网络类型

剪贴板

设置剪贴板

  1. uni.setClipboardData({
  2. data: 'hello',
  3. success: function () {
  4. console.log('success');
  5. }
  6. });

获取剪贴板数据

  1. uni.getClipboardData({
  2. success: function (res) {
  3. console.log(res.data); // hello
  4. }
  5. });

加速度计

uni.startAccelerometer 开始监听,通过 uni.onAccelerometerChange 监听加速度数据, 频率:5次/秒,接口调用后会自动开始监听,可使用 uni.stopAccelerometer 停止监听。

  1. <template>
  2. <view>
  3. <button @click="start">开始获取</button>
  4. <button @click="stop">停止获取</button>
  5. </view>
  6. </template>
  7. <script>
  8. export default {
  9. mounted () {
  10. uni.onAccelerometerChange(res => {
  11. console.log(JSON.stringify(res));
  12. // {"x":0.695175,"y":-0.466599,"z":9.795013,"errMsg":"enableAccelerometer:ok"}
  13. })
  14. },
  15. methods: {
  16. start () {
  17. uni.startAccelerometer();
  18. },
  19. stop () {
  20. uni.stopAccelerometer();
  21. }
  22. }
  23. }
  24. </script>

监听数据:

  • x Number X 轴
  • y Number Y 轴
  • z Number Z 轴

罗盘

uni.startAccelerometer 开始监听,通过 uni.onCompassChange 监听罗盘数据, 频率:5次/秒,接口调用后会自动开始监听,可使用 uni.stopAccelerometer 停止监听。

  1. <template>
  2. <view>
  3. <button @click="start">开始获取</button>
  4. <button @click="stop">停止获取</button>
  5. </view>
  6. </template>
  7. <script>
  8. export default {
  9. mounted () {
  10. uni.onCompassChange(function (res) {
  11. console.log(JSON.stringify(res));
  12. // {"direction":169.100098,"errMsg":"enableCompass:ok"}
  13. });
  14. },
  15. methods: {
  16. start () {
  17. uni.startCompass();
  18. },
  19. stop () {
  20. uni.stopCompass();
  21. }
  22. }
  23. }
  24. </script>

监听数据:

  • direction Number 面对的方向度数

震动

  1. uni.vibrateLong(); // 长震动(400ms)
  2. uni.vibrateShort(); // 短震动(15ms), 部分手机(比如iOS)不支持

屏幕亮度

获取屏幕亮度

  1. uni.getScreenBrightness({
  2. success: res => {
  3. console.log(JSON.stringify(res));
  4. // {"errMsg":"getScreenBrightness:ok","value":0.08235294}
  5. }
  6. })

开启屏幕常亮

  1. uni.setKeepScreenOn({
  2. keepScreenOn: true
  3. });

设置屏幕亮度
value 为屏幕亮度值,0为最暗,1为最亮。

  1. <template>
  2. <view>
  3. <view><text>设置屏幕亮度</text></view>
  4. <slider :value="light" @change="setBright" step="5" />
  5. </view>
  6. </template>
  7. <script>
  8. export default {
  9. data() {
  10. return {
  11. light: 10
  12. }
  13. },
  14. methods: {
  15. setBright (e) {
  16. this.light = e.detail.value
  17. uni.setScreenBrightness({
  18. value: this.light / 100,
  19. success: () => {
  20. console.log('success');
  21. }
  22. });
  23. }
  24. }
  25. }
  26. </script>

拨打电话

  1. uni.makePhoneCall({
  2. phoneNumber: '114' //仅为示例
  3. });

扫码

  1. uni.scanCode({
  2. success: function (res) {
  3. console.log('条码类型:' + res.scanType);
  4. console.log('条码内容:' + res.result);
  5. }
  6. });

选项参数:

参数名 类型 必填 说明 平台差异说明
onlyFromCamera Boolean 是否只能从相机扫码,不允许从相册选择图片 头条小程序不支持
scanType Array 扫码类型,参数类型是数组,二维码是’qrCode’,一维码是’barCode’,DataMatrix是 ‘datamatrix’,pdf417是’pdf417’。 头条小程序不支持

成功的回调参数:

参数 说明 平台差异说明
result 所扫码的内容
scanType 所扫码的类型 5+App、微信小程序、百度小程序
charSet 所扫码的字符集 5+App、微信小程序、百度小程序
path 当所扫的码为当前应用的合法二维码时,会返回此字段,内容为二维码携带的 path。 5+App、微信小程序、百度小程序

参考资料