您好, 欢迎来到 !    登录 | 注册 | | 设为首页 | 收藏本站

条件编译实现跨端兼容

想要实现一套适配多个平台,有很大的门槛就是实现各平台的兼容。

虽然 已经将跨平台兼容处理的组件及 API 等进行了封装,日常开发过程中,我们按照 规范开发就可以保证大部分业务在各平台兼容。

但是有时会因为某个平台的开发特性,出现不兼容的情况。比如单平台适配的样式、第三方授权或者支付。

是难得的在跨端的过程中不牺牲各平台特色的框架,出现开发差异的时候,可以使用条件编译来做适配,实现在项目中不用平台的特色。本小节我们来了解一下条件编译的使用。

条件编译是用特殊的注释作为,在编译时根据这些特殊的注释,将注释里面的编译到不同平台。
写法:以 #ifdef 或 #ifndef 加 %PLATFORM% 开头,以 #endif 结尾。

实例:

这样可能也比较抽象,下面我们用前面小节做的弹窗给大家举个实际项目的例子。

编辑 pages/index/index.vue ,在弹窗组件的外面条件编译,设置仅在H5平台弹窗。
实例:

<!-- #ifdef H5 -->
<Login v-if="isShow" :text="text" @isShow="getShow"></Login>
<!-- #endif -->

Tips:条件编译是注释的状态,不要写错哦~

点击工具栏–运行–运行到内置浏览器,内置浏览器是H5平台,所以弹窗会。

弹窗在 H5 平台上面,其他平台上面。
实例:

<!-- #ifndef H5 -->
<Login v-if="isShow" :text="text" @isShow="getShow"></Login>
<!-- #endif -->

弹窗在 H5 平台和平台上面,其他平台上面。
实例:

<!-- #ifndef H5 || MP-WEIXIN -->
<Login v-if="isShow" :text="text" @isShow="getShow"></Login>
<!-- #endif -->

条件编译是用特殊的注释作为,在编译时根据这些特殊的注释,将注释里面的编译到不同平台。

也就是%PLATFORM% 可取值如下:

接下来我们来看一下按钮样式的条件编译,在不同的平台不一样的颜色。

将 pages/index/index.vue 中,我们给 Login 组件上面加的条件编译去掉。来编辑 components/login/login.vue 中的样式部分。
实例:

/*H5平台按钮红色,按钮蓝色*/
button {
  /* #ifdef H5 */
  background:red;
  /*  #endif  */
  /* #ifdef MP-WEIXIN */
  background:blue;
  /*  #endif  */
}

点击工具栏–运行–运行到内置浏览器,测试H5平台。

我们来演示一下如何在不同平台不同的信息。

编辑 pages/index/index.vue ,在 data 中编辑。
实例:

点击工具栏–运行–运行到内置浏览器,测试H5平台。

点击工具栏–运行–运行到模拟器–微信开发者工具,测试平台。

用条件编译的方案,来处理不同平台的特性或差异,优雅的完成了各个平台个性化的实现。本节课程我们主要学习了 神奇的条件编译,是不是一学就会,非常简单。本节课程的需要掌握的重点如下:


联系我
置顶