uin-app 的条件编译(APP-PLUS 、H5、MP-WEIXIN )

  • Post author:
  • Post category:其他


uin-app 的条件编译(APP-PLUS 、H5、MP-WEIXIN )



1、条件编译

#ifdef APP-PLUS
  需条件编译的代码                     仅出现在 App 平台下的代码
#endif


ifdef:if defined 仅在某平台存在



ifndef:if not defined 除了某平台均存在

平台
APP-PLUS App
APP-PLUS-NVUE App nvue
H5 H5
MP-WEIXIN 微信小程序
MP-ALIPAY 支付宝小程序
MP-BAIDU 百度小程序
MP-TOUTIAO 字节跳动小程序
MP-QQ QQ小程序
MP-360 360小程序
MP 微信小程序/支付宝小程序/百度小程序/字节跳动小程序/QQ小程序/360小程序
quickapp-webview 快应用通用(包含联盟、华为)
quickapp-webview-union 快应用联盟
quickapp-webview-huawei 快应用华为



2、注意事项


条件编译是利用注释实现的,在不同语法里注释写法不一样。

  • js 使用

    // 注释

  • css使用

    /* 注释 */

  • vue/nvue 模板里使用

    <!-- 注释 -->

    ;

  • 条件编译APP-PLUS包含APP-NVUE和APP-VUE,APP-PLUS-NVUE和APP-NVUE没什么区别,为了简写后面出了APP-NVUE;

  • 使用条件编译请保证编译前和编译后文件的正确性,比如json文件中不能有多余的逗号;

  • VUE3 需要在项目的 manifest.json 文件根节点配置 “vueVersion” : “3;

  • Android 和 iOS 平台不支持通过条件编译来区分,如果需要区分 Android、iOS 平台,请通过调用 uni.getSystemInfo 来获取平台信息。支持ifios、ifAndroid代码块,可方便编写判断;

  • 有些跨端工具可以提供js的条件编译或多态,但这对于实际开发远远不够。uni-app不止是处理js,任何代码都可以多端条件编译,才能真正解决实际项目的跨端问题。另外所谓多态在实际开发中会造成大量冗余代码,很不利于复用和维护。举例,微信小程序主题色是绿色,而百度支付宝小程序是蓝色,你的应用想分平台适配颜色,只有条件编译是代码量最低、最容易维护的;

  • 有些公司的产品运营总是给不同平台提不同需求,但这不是拒绝uni-app的理由。关键在于项目里,复用的代码多还是个性的代码多,正常都是复用的代码多,所以仍然应该多端。而个性的代码放到不同平台的目录下,差异化维护。



版权声明:本文为DZQ1223原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。