manifest-modules.md 8.1 KB
Newer Older
D
DCloud_LXH 已提交
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22
# modules

## 模块的摇树@treeShaking

uni-app x的Android基础库体积是7M,打包后的apk体积是基础库的体积加上开发者的代码及代码引用的模块的体积。有些模块涉及so库,覆盖的cpu指令越多,包体积越大。

在uni-app js引擎版中,内置模块如video,是开发者在manifest.json中手动勾选配置的。

但在uni-app x中,不需要手动配置。

HBuilderX3.93版本起,编译器支持扫描代码,摇树treeShaking,自动引入或剔除不需要的内置模块。

如应用中没有使用video组件相关功能,将不再包含video内置模块,减少安装包体积。

**摇树注意事项:**
当你打包自定义基座时,如果你的工程代码没有使用video、定位、相册、摄像头等涉及三方sdk或敏感权限的api,打出的自定义基座包就不会包含这些组件和api的功能,那么在这些自定义基座上运行时,调用相关的组件和api就会报错。\
此时您需要在工程中写相关的代码,如引用video组件或调用定位api,保存代码后重新打包自定义基座,才会包含相关模块。

您在工程中下载的ext api、三方uts插件也同理,没有引用就不会打进去。

### App端支持摇树的内置模块列表@utsmodules

DCloud-yyl's avatar
DCloud-yyl 已提交
23
- uni-createRequestPermissionListener  
DCloud-yyl's avatar
DCloud-yyl 已提交
24
  监听权限申请模块(`HBuilderX4.0+`),包括API:[uni.createRequestPermissionListener](../api/create-request-permission-listener.md)  
DCloud-yyl's avatar
DCloud-yyl 已提交
25 26 27 28 29
  依赖的模块:无  
  注意:HBuilderX4.0版本新增,仅App-Android平台支持。  

- uni-createWebviewContext  
  创建 web-view 组件的上下文对象模块,包括API:[uni.createWebviewContext](../api/create-webview-context.md)  
30 31
  依赖的模块:无  

DCloud-yyl's avatar
DCloud-yyl 已提交
32 33 34 35
- uni-fileSystemManager  
  文件管理模块(`HBuilderX3.99+`),包括API:[uni.getFileSystemManager](../api/get-file-system-manager.md)  
  依赖的模块:无  

36 37 38 39
- uni-getLocation-system  
  系统定位模块,包括API:[uni.getLocation](../api/get-location.md)  
  依赖的模块:无  

DCloud-yyl's avatar
DCloud-yyl 已提交
40 41
- uni-getNetworkType  
  获取网络类型模块,包括API:[uni.getNetworkType](../api/get-network-type.md)  
42 43
  依赖的模块:无  

DCloud-yyl's avatar
DCloud-yyl 已提交
44
- uni-installApk  
DCloud-yyl's avatar
DCloud-yyl 已提交
45
  安装apk模块(`HBuilderX3.99+`),包括API:[uni.installApk](../api/install-apk.md)  
DCloud-yyl's avatar
DCloud-yyl 已提交
46 47 48
  依赖的模块:无  
  注意:HBuilderX3.99版本新增,仅App-Android平台支持。 

49 50 51 52
- uni-media  
  多媒体相关API模块,包括API:[uni.chooseImage](../api/choose-image.md)[uni.previewImage](../api/preview-image.md)[uni.saveImageToPhotosAlbum](../api/save-image-to-photos-album.md)  
  依赖的模块:无  

DCloud-yyl's avatar
DCloud-yyl 已提交
53 54 55 56 57 58 59 60 61 62 63 64
- uni-network  
  网络请求(文件上传/下载)模块,包括API:[uni.downloadFile](../api/download-file.md)[uni.request](../api/request.md)[uni.uploadFile](../api/upload-file.md)  
  依赖的模块:无  

- uni-websocket  
  WebSocket模块,包括API:[uni.connectSocket](../api/websocket-global.md)[uni.onSocketOpen](../api/websocket-global.md#onsocketopen)[uni.onSocketError](../api/websocket-global.md#onsocketerror)[uni.sendSocketMessage](../api/websocket-global.md#sendsocketmessage)[uni.onSocketMessage](../api/websocket-global.md#onsocketmessage)[uni.closeSocket](../api/websocket-global.md#closesocket)[uni.onSocketClose](../api/websocket-global.md#onsocketclose)  
  依赖的模块:无  

- uni-video  
  [video视频组件](../component/video.md)模块,包括内置组件:[video](../component/video.md);包括API:[uni.createVideoContext](../api/create-video-context.md)  
  依赖的模块:无  

65 66 67 68
- uni-cloud-client  
  调用uniCloud[云函数/云对象](https://doc.dcloud.net.cn/uniCloud/cf-functions.html)模块,包括API:[uniCloud.importObject](https://doc.dcloud.net.cn/uniCloud/cloud-obj.html#%E5%AE%A2%E6%88%B7%E7%AB%AF%E8%B0%83%E7%94%A8)[uniCloud.callFunction](https://doc.dcloud.net.cn/uniCloud/cf-callfunction.html#callfunction%E6%96%B9%E6%B3%95)  
  依赖的模块:uni-media、uni-network  

DCloud-yyl's avatar
DCloud-yyl 已提交
69 70 71 72 73
- uni-ad  
  uni-AD[广告联盟](https://uniad.dcloud.net.cn/)模块(`HBuilderX4.0+`),包括API:[uni.createRewardedVideoAd](../api/create-rewarded-video-ad.md)  
  依赖的模块:无  
  注意:此模块仅包含基础广告模块,配置聚合广告平台需手动配置,详情参考[uni-ad](#uni-ad)章节  

74 75 76 77 78 79 80 81
- uni-push  
  [uni-push统一推送](https://uniapp.dcloud.net.cn/unipush-v2.html)模块(`HBuilderX3.97+`),包括API:[uni.createPushMessage](../api/push.md#createpushmessage)[uni.getPushClientId](../api/push.md#getpushclientid)[uni.offPushMessage](../api/push.md#offpushmessage)[uni.onPushMessage](../api/push.md#onpushmessage)  
  依赖的模块:无  

- uni-facialRecognitionVerify  
  [uni实人认证](https://doc.dcloud.net.cn/uniCloud/frv/intro.html)模块,包括API:[uni.getFacialRecognitionMetaInfo](../api/facial-recognition-verify.md#getfacialrecognitionmetainfo)[uni.startFacialRecognitionVerify](../api/facial-recognition-verify.md#startfacialrecognitionverify)  
  依赖的模块:无  

DCloud-yyl's avatar
DCloud-yyl 已提交
82 83 84
- uni-verify  
  [App一键登陆](../api/get-univerify-manager.md)模块(`HBuilderX3.99+`),包括API:[uni.getUniverifyManager](../api/get-univerify-manager.md#getuniverifymanager)[UniverifyManager.preLogin](../api/get-univerify-manager.md#prelogin)[UniverifyManager.login](../api/get-univerify-manager.md#login)  
  依赖的模块:无  
WOSHIMAHAIFENG's avatar
WOSHIMAHAIFENG 已提交
85 86 87 88
- uni-payment  
  uni-payment请求支付模块,包括API:[uni.requestPayment](../api/request-payment.md) <br>
  依赖的模块:无  
  注意:此模块仅包含基础支付模块,需手动配置支付方式,详情参考[uni-payment](#uni-payment)章节 
DCloud-yyl's avatar
DCloud-yyl 已提交
89

90 91 92
再次强调,以上模块不属于ext组件或api,是内置模块。但如果你的代码中没有使用这些组件和api,打正式包或自定义基座时会被摇掉。  

**注意**  
DCloud-yyl's avatar
DCloud-yyl 已提交
93
uts插件中暂不支持摇树,如果uts插件中使用了以上模块,需在使用此uts插件的 uni-app x 项目 manifest.json 文件的 app -> distribute -> modules 下手动添加对应节点:  
94 95 96 97 98 99
```json
	//以下示例手动添加  uni-media  模块  
	modules:{
		"uni-media":{}
	}
```
D
DCloud_LXH 已提交
100

W
x  
wanganxp 已提交
101
## uni-ad@uni-ad
DCloud-yyl's avatar
DCloud-yyl 已提交
102

W
x  
wanganxp 已提交
103
> HBuilderX 3.99+ 新增支持 uni-ad 开屏广告
DCloud-yyl's avatar
DCloud-yyl 已提交
104

W
x  
wanganxp 已提交
105
[uni-ad](https://uniad.dcloud.net.cn/) 是DCloud提供的聚合广告服务。
DCloud-yyl's avatar
DCloud-yyl 已提交
106

W
x  
wanganxp 已提交
107 108 109 110
在uni-app x客户端,uni-ad是一个独立模块。使用开屏广告不需要调用任何API,应用启动时会自动拉取并展示开屏广告。这也导致 uni-ad 模块无法参与摇树。
需要开发者在 manifest.json 中手动配置,并提交云端打包后才能生效。

使用 uni-ad 模块需在 manifest.json 文件中添加如下配置:  
DCloud-yyl's avatar
DCloud-yyl 已提交
111

DCloud-yyl's avatar
DCloud-yyl 已提交
112 113
### 配置三方广告SDK  
在 app -> distribute -> modules 下添加 uni-ad 节点:  
DCloud-yyl's avatar
DCloud-yyl 已提交
114 115 116 117 118 119 120 121 122 123 124 125
```json
	modules:{
		"uni-ad":{
			"gdt":{},
			"gm":{},
			"ks":{},
			"sgm":{},
			"bd":{}
		}
	}
```

DCloud-yyl's avatar
DCloud-yyl 已提交
126 127 128 129 130 131 132 133
其中 uni-ad 下的节点表示要聚合的广告平台:  
| 标识 | 广告平台名称 |
| :-  | :- |
| gdt | 腾讯优量汇广告联盟 |
| gm | 穿山甲GroMore |
| ks | 快手广告联盟 |
| sgm | Sigmob广告联盟 |
| bd | 百度百青藤广告联盟 |
DCloud-yyl's avatar
DCloud-yyl 已提交
134

dc_zhanglei's avatar
dc_zhanglei 已提交
135 136
添加相应的节点,云端打包就会将对应的广告平台 SDK 打包到最终安装包中。 

dc_zhanglei's avatar
dc_zhanglei 已提交
137 138
注意:穿山甲GroMore、快手广告联盟、腾讯优量汇广告联盟仅支持`armeabi-v7a``arm64-v8a`两个CPU平台。

dc_zhanglei's avatar
dc_zhanglei 已提交
139
注意:目前仅支持上述国内广告平台,国际广告暂不支持。
DCloud-yyl's avatar
DCloud-yyl 已提交
140

WOSHIMAHAIFENG's avatar
WOSHIMAHAIFENG 已提交
141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 170
## uni-payment@uni-payment
> HBuilderX 4.11+ 新增支持 uni-payment 请求支付

在uni-app x客户端,uni-payment是一个独立模块。需要开发者在 manifest.json 中手动配置,并提交云端打包后才能生效。

使用 uni-payment 模块需在 manifest.json 文件中添加如下配置:  

### 配置支付SDK  
在 app -> distribute -> modules 下添加 uni-ad 节点:  
```json
  	modules:{
	     	"uni-payment":{
                       "alipay":{},
                       "wxpay":{}
                }
	}
```

其中 uni-payment 下的节点表示要聚合的支付方式:  
| 标识 | 支付方式 |
| :-  | :- |
| alipay | 支付宝支付 |
| wxpay | 微信支付 |


添加相应的节点,云端打包就会将对应的支付 SDK 打包到最终安装包中。