diff --git a/docs/platform.md b/docs/platform.md index 1a6228bf02e315d67ff925e3f63cd85520cf30e2..dd38a911a45a19ee4eae1288c75f853779362e64 100644 --- a/docs/platform.md +++ b/docs/platform.md @@ -19,7 +19,58 @@ uni-app 已将常用的组件、JS API 封装到框架中,开发者按照 uni- * #ifndef:if not defined 除了某平台均存在 * %PLATFORM%:平台名称 -
条件编译写法 | 说明 |
---|---|
#ifdef APP-PLUS 需条件编译的代码 #endif | 仅出现在 App 平台下的代码 |
#ifndef H5 需条件编译的代码 #endif | 除了 H5 平台,其它平台均存在的代码 |
#ifdef H5 || MP-WEIXIN 需条件编译的代码 #endif | 在 H5 平台或微信小程序平台存在的代码(这里只有||,不可能出现&&,因为没有交集) |
条件编译写法 | +说明 | +
---|---|
+
+
+ #ifdef
+ APP-PLUS
+
+
+ 需条件编译的代码 + + #endif + |
+ 仅出现在 App 平台下的代码 | +
+
+
+ #ifndef
+ H5
+
+
+ 需条件编译的代码 + + #endif + |
+ 除了 H5 平台,其它平台均存在的代码 | +
+
+
+ #ifdef
+ H5
+
+ ||
+ APP-PLUS
+
+ 需条件编译的代码 #endif + |
+ 在 H5 平台或 App 平台存在的代码(这里只有||,不可能出现&&,因为没有交集) | +
┌─static
-│ ├─mp-weixin
+│ ├─app-plus
│ │ └─a.png
│ └─b.png
├─main.js
@@ -142,7 +180,7 @@ json的条件编译,如不同平台的key名称相同,cli项目下开发者
### 整体目录条件编译
-如果想把各平台的页面文件更彻底的分开,也可以在uni-app项目根目录创建`platforms`目录,然后在下面进一步创建`app-plus`、`mp-weixin`等子目录,存放不同平台的文件。
+如果想把各平台的页面文件更彻底的分开,也可以在uni-app项目根目录创建`platforms`目录,然后在下面进一步创建`app-plus`等子目录,存放不同平台的文件。
**注意**
@@ -179,5 +217,5 @@ HBuilderX 为 ``uni-app`` 的条件编译提供了丰富的支持:
### 注意
* Android 和 iOS 平台不支持通过条件编译来区分,如果需要区分 Android、iOS 平台,请通过调用 uni.getSystemInfo 来获取平台信息。支持`ifios`、`ifAndroid`代码块,可方便编写判断。
-* 有些跨端工具可以提供js的条件编译或多态,但这对于实际开发远远不够。uni-app不止是处理js,任何代码都可以多端条件编译,才能真正解决实际项目的跨端问题。另外所谓多态在实际开发中会造成大量冗余代码,很不利于复用和维护。举例,微信小程序主题色是绿色,而百度支付宝小程序是蓝色,你的应用想分平台适配颜色,只有条件编译是代码量最低、最容易维护的。
+* 有些跨端工具可以提供js的条件编译或多态,但这对于实际开发远远不够。uni-app不止是处理js,任何代码都可以多端条件编译,才能真正解决实际项目的跨端问题。另外所谓多态在实际开发中会造成大量冗余代码,很不利于复用和维护。
* 有些公司的产品运营总是给不同平台提不同需求,但这不是拒绝uni-app的理由。关键在于项目里,复用的代码多还是个性的代码多,正常都是复用的代码多,所以仍然应该多端。而个性的代码放到不同平台的目录下,差异化维护。