当前位置: 首页 > news >正文

php网站开发招招聘网页美工设计实训心得

php网站开发招招聘,网页美工设计实训心得,网站建设有哪三部,在线培训平台在 Uniapp 开发中,uni.getSystemInfo 和 uni.getSystemInfoSync 都是用于获取设备系统信息的 API,但它们的调用方式和适用场景有所不同。 一、基本区别特性uni.getSystemInfouni.getSystemInfoSync调用方式异步获取同步获取返回值通过回调函数返回直接返…

在 Uniapp 开发中,uni.getSystemInfouni.getSystemInfoSync 都是用于获取设备系统信息的 API,但它们的调用方式和适用场景有所不同。

一、基本区别

特性uni.getSystemInfouni.getSystemInfoSync
调用方式异步获取同步获取
返回值通过回调函数返回直接返回系统信息对象
执行时机需要等待回调立即执行
使用场景一般场景需要立即获取信息的场景

二、uni.getSystemInfo (异步获取)

基本用法

uni.getSystemInfo({success: (res) => {console.log(res);},fail: (err) => {console.error('获取系统信息失败', err);},complete: () => {console.log('获取系统信息完成');}
});

Promise 封装

function getSystemInfoAsync() {return new Promise((resolve, reject) => {uni.getSystemInfo({success: resolve,fail: reject});});
}// 使用
async function useSystemInfo() {try {const systemInfo = await getSystemInfoAsync();console.log(systemInfo);} catch (err) {console.error('获取系统信息失败', err);}
}

三、uni.getSystemInfoSync (同步获取)

基本用法

try {const systemInfo = uni.getSystemInfoSync();console.log(systemInfo);
} catch (err) {console.error('获取系统信息失败', err);
}

四、返回的系统信息对象

两种方法返回的对象结构相同,包含以下常用属性:

属性名类型说明
brandString设备品牌(如:Apple、HUAWEI等)
modelString设备型号(如:iPhone 13、Redmi K40等)
pixelRatioNumber设备像素比
screenWidthNumber屏幕宽度(单位:px)
screenHeightNumber屏幕高度(单位:px)
windowWidthNumber可使用窗口宽度(单位:px)
windowHeightNumber可使用窗口高度(单位:px)
statusBarHeightNumber状态栏高度(单位:px)
platformString运行平台(如:ios、android等)
systemString操作系统及版本(如:iOS 15.2、Android 11等)
languageString系统语言(如:zh-CN、en-US等)
versionString客户端基础库版本
fontSizeSettingNumber用户设置的字体大小(单位:px)
SDKVersionString客户端基础库版本(小程序端)
benchmarkLevelNumber设备性能等级(仅微信小程序)
albumAuthorizedBoolean相册授权状态(仅微信小程序)
cameraAuthorizedBoolean摄像头授权状态(仅微信小程序)
locationAuthorizedBoolean定位授权状态(仅微信小程序)
microphoneAuthorizedBoolean麦克风授权状态(仅微信小程序)
notificationAuthorizedBoolean通知授权状态(仅微信小程序)

五、使用场景对比

1. 适合使用 uni.getSystemInfo 的场景

  • 不需要立即获取系统信息
  • 在异步函数或Promise链中使用
  • 需要处理可能的错误情况
onLoad() {uni.getSystemInfo({success: (res) => {this.setData({isIPhoneX: res.model.includes('iPhone X')});}});
}

2. 适合使用 uni.getSystemInfoSync 的场景

  • 需要立即获取系统信息
  • 在同步代码流程中
  • 简单的条件判断
onLoad() {const systemInfo = uni.getSystemInfoSync();this.isIPhoneX = systemInfo.model.includes('iPhone X');// 根据平台设置样式if (systemInfo.platform === 'ios') {this.setData({ paddingTop: '44px' });} else {this.setData({ paddingTop: '48px' });}
}

六、实际应用示例

1. 适配全面屏

// 在页面或组件中
data() {return {isFullScreen: false,statusBarHeight: 0,safeAreaInsets: { top: 0, bottom: 0 }};
},created() {const systemInfo = uni.getSystemInfoSync();// 判断是否是全面屏设备this.isFullScreen = systemInfo.screenHeight / systemInfo.screenWidth > 1.8;// 获取状态栏高度this.statusBarHeight = systemInfo.statusBarHeight || 0;// 获取安全区域(App端)if (systemInfo.safeArea) {this.safeAreaInsets = {top: systemInfo.safeArea.top,bottom: systemInfo.screenHeight - systemInfo.safeArea.bottom};}
}

2. 平台特定样式

<template><view :style="{ paddingTop: paddingTop + 'px' }"><!-- 页面内容 --></view>
</template><script>
export default {data() {return {paddingTop: 0};},mounted() {const systemInfo = uni.getSystemInfoSync();this.paddingTop = systemInfo.statusBarHeight + (systemInfo.platform === 'ios' ? 44 : 48);}
};
</script>

3. 设备判断

// 判断是否是iOS设备
function isIOS() {const systemInfo = uni.getSystemInfoSync();return systemInfo.platform === 'ios';
}// 判断是否是Android设备
function isAndroid() {const systemInfo = uni.getSystemInfoSync();return systemInfo.platform === 'android';
}// 判断是否是iPhone X及以上机型
function isIPhoneX() {const systemInfo = uni.getSystemInfoSync();return /iPhone X|iPhone 1[1-9]|iPhone [1-9][0-9]/.test(systemInfo.model);
}

七、注意事项

  1. 平台差异

    • 某些属性只在特定平台有效(如 safeArea 主要在App端有效)
    • 小程序端和H5端返回的信息可能比App端少
  2. 性能考虑

    • 频繁调用同步API可能会影响性能
    • 对于不常变化的信息,可以考虑缓存结果
  3. 错误处理

    • 同步方法需要用 try-catch 包裹
    • 异步方法需要处理 fail 回调
  4. 时机问题

    • 在应用启动时,某些信息可能还未准备好
    • 对于关键信息,建议在 onReadymounted 生命周期中获取
  5. 单位转换

    • 返回的尺寸单位是 px,需要根据需要进行 rpx 转换

通过合理使用这两个API,可以更好地实现多端适配和设备特性检测,提升应用的用户体验。

http://www.dtcms.com/a/484473.html

相关文章:

  • 电子商务网站建设外包服务怎样登录韵网网站
  • 单页营销网站模板无锡app制作
  • seo蒙牛伊利企业网站专业性诊断成都小程序商城开发
  • 万户网站协作管理系统wordpress首页修改路径
  • 免费自助网站用户浏览网站的方式
  • 网站建设购物商城wordpress 咨询主题
  • WordPress强制更换主题佛山seo关键词
  • 如果做网站网站开发技术及特点
  • 齐齐哈尔哪里做网站外贸网站推广建设
  • 服务网站建设方案网络seo哈尔滨
  • 学网站建设语言资料管理系统
  • Bootstrap4 表格详解
  • 网站搜索不到公司网站凡科建站官网登录入口网页版
  • 创建网站app怎么注册中文域名
  • 织梦网站源文件没有style文件夹怎么修改网站背景wordpress 旅游足迹插件
  • 网站制作模板过程网页特效大全
  • 学校网站建设企业直播软件开发需要多少钱
  • 关于网站开发人员的薪资谢家华做网站
  • 基于springboot针对老年人的景区订票系统
  • 越秀区建网站公司如何做公司自己的网站
  • 网站建设网上商城心得体会九江市seo
  • 茂名做网站建设公司单页面网站有哪些内容
  • 京东联盟怎么做CMS网站wordpress国内博客主题
  • 公司网站在百度搜不到互联网
  • 公司网站的管理和维护电子商务平台是什么意思
  • 做网站的设计尺寸延吉网站开发公司
  • 制作一个网站数据库怎么做的深圳网页设计公司搜行者seo
  • 织梦个人网站模板永清县建设局 网站
  • 怎么运营小程序seo网站诊断价格
  • 南通网站设计大连百度推广优化