编译期判断

#ifdef:if defined 仅在某平台存在

#仅出现在 App 平台下的代码

#ifdef APP-PLUS
需条件编译的代码
#endif

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

#除了 H5 平台,其它平台均存在的代码

#ifndef H5
需条件编译的代码
#endif

%PLATFORM%:平台名称

平台
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 快应用华为

支持的文件

  • .vue
  • .js
  • .css
  • pages.json
  • 各预编译语言文件,如:.scss、.less、.stylus、.ts、.pug

注意: 条件编译是利用注释实现的,在不同语法里注释写法不一样,js使用 // 注释、css 使用 /* 注释 */、vue/nvue 模板里使用 <!– 注释 –>

运行期判断 

运行期判断是指代码已经打入包中,仍然需要在运行期判断平台,此时可使用 uni.getSystemInfoSync().platform 判断客户端环境是 Android、iOS 还是小程序开发工具(在百度小程序开发工具、微信小程序开发工具、支付宝小程序开发工具中使用 uni.getSystemInfoSync().platform 返回值均为 devtools)

switch(uni.getSystemInfoSync().platform)
{
     
    case 'android':
        
        console.log('运行Android上')
        
        break;
     
    case 'ios':
        
        console.log('运行iOS上')
        
        break;
     
    default:
        
        console.log('运行在开发者工具上')
        
        break;
}

 

作者 admin

百度广告效果展示