UniApp 的跨端兼容
跨端兼容通过条件编译实现,针对不同平台编写差异化代码:
条件编译语法
html
<!-- 平台特有代码块 -->
#ifdef 平台标识
<!-- 仅在指定平台编译 -->
#endif
#ifndef 平台标识
<!-- 除指定平台外均编译 -->
#endif
常用平台标识
H5
:Web 端MP-WEIXIN
:微信小程序MP-ALIPAY
:支付宝小程序MP-BAIDU
:百度小程序MP-TOUTIAO
:字节跳动小程序APP-PLUS
:App 端(iOS/Android)MP
:所有小程序平台通用APP-PLUS-NVUE
:App 端 nvue 页面
多端兼容进阶技巧
- 样式隔离:使用
scoped
或平台特定样式文件(如page.vue
对应page.h5.vue
) - API 适配:封装统一接口适配层,处理平台 API 差异javascript
// api-adapter.js export const request = (options) => { #ifdef H5 // H5 端特殊处理 #endif return uni.request(options) }
- 组件适配:通过
components
目录按平台拆分组件,如components/button/button.vue
与components/button/button.mp-weixin.vue