uni-app #ifdef #ifndef #endif的使用和区别

1. uni-app #ifdef #ifndef #endif的使用和区别

条件编译是一种在编程中根据特定平台选择性编译代码的技术。如#ifdef和#endif根据APP-PLUS平台标识在微信小程序、支付宝小程序、百度小程序、头条小程序、QQ小程序以及H5应用中实现代码的平台特定执行。下面介绍了如何使用#ifdef和#ifndef等注释来标记代码块,确保它们在H5、5+App、微信小程序等不同平台上正确执行编译。通过这种方式,开发者可以实现代码的平台定制,提高代码的可移植性和效率。

1.1. #ifdef #ifndef #endif三者

写法:以 #ifdef 或 #ifndef 加 %PLATFORM% 开头,以 #endif 结尾。

名称 作用
#ifdef 仅在某个平台上使用0
#ifndef 在除了这个平台的其他平台上使用(非此平台使用)
#endif 结束条件编译

1.2. 平台标识

1.2.1. 生效条件

标识 生效条件
VUE3 uni-app js引擎版用于区分vue2和3,
VUE2 uni-app js引擎版用于区分vue2和3
UNI-APP-X 用于区分是否是uni-app x项目
uniVersion 用于区分编译器的版本
APP App
APP-PLUS uni-app js引擎版编译为App时
APP-PLUS-NVUE或APP-NVUE App nvue 页面
APP-ANDROID App Android 平台 详情
APP-IOS App iOS 平台 详情
H5 H5(推荐使用 WEB)
WEB web(同H5) HBuilderX 3.6.3+
MP-WEIXIN 微信小程序
MP-ALIPAY 支付宝小程序
MP-BAIDU 百度小程序
MP-TOUTIAO 抖音小程序
MP-LARK 飞书小程序
MP-QQ QQ小程序
MP-KUAISHOU 快手小程序
MP-JD 京东小程序
MP-360 360小程序
MP 微信小程序/支付宝小程序/百度小程序/抖音小程序/飞书小程序/QQ小程序/360小程序
QUICKAPP-WEBVIEW 快应用通用(包含联盟、华为)
QUICKAPP-WEBVIEW-UNION 快应用联盟
QUICKAPP-WEBVIEW-HUAWEI 快应用华为

1.2.1. 支持的文件

(1).vue/.nvue/.uvue

(2).js/.uts

(3).css

(4)pages.json

(5)各预编译语言文件,如:.scss、.less、.stylus、.ts、.pug

1.3. 案例

1.3.1. 示例页面

javascript 复制代码
     <!-- h5显示 -->
	<!-- #ifdef H5 -->
	<view>H5</view>
	<!-- #endif -->
	
	<!-- 微信小程序显示 -->
	<!-- #ifdef MP-WEIXIN -->
	<view>小程序</view>
	<!-- #endif -->
	
	
	<!-- #ifndef H5 -->
	<view class="else">
		除了h5都展示
	</view>
	<!-- #endif -->

1.3.2. 示例方法

javascript 复制代码
	onLoad() {
			// #ifdef H5
			console.log('H5')
			// #endif
			// #ifdef MP-WEIXIN
			console.log('小程序')
			// #endif
		}
相关推荐
2501_9159090618 小时前
iOS 反编译防护工具全景解析 从底层符号到资源层的多维安全体系
android·安全·ios·小程序·uni-app·iphone·webview
lvha19 小时前
uniapp BLE低功耗蓝牙插件 支持安卓 iOS 鸿蒙NEXT 微信小程序
uni-app·蓝牙
Redundantº1 天前
Uniapp 适配安卓与 iOS 的 PDF、DOC 文件上传
android·ios·pdf·uni-app·webview
Harry技术1 天前
UniApp H5 代理失效的终极替代方案
uni-app
2501_915918411 天前
iOS 应用如何防止破解?从逆向链路还原攻击者视角,构建完整的反破解工程实践体系
android·macos·ios·小程序·uni-app·cocoa·iphone
2501_916007471 天前
iOS 压力测试的工程化体系 构建多工具协同的极限稳定性验证方案
android·ios·小程序·uni-app·压力测试·iphone·webview
2501_916007471 天前
iOS 应用上架流程的工程化拆解 从签名体系到提交审核的全过程管控
android·ios·小程序·https·uni-app·iphone·webview
一殊酒1 天前
【前端开发】Uniapp:Android/IOS云打包
android·ios·uni-app
yqcoder1 天前
uni-app 之 uni.showLoading
uni-app
2501_915918411 天前
构建可靠的 iOS 日志导出体系,从真机日志到系统行为的多工具协同实践
android·ios·小程序·https·uni-app·iphone·webview