manifest-modules.md 11.7 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
# 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插件也同理,没有引用就不会打进去。

21
### app平台支持摇树的内置模块列表@utsmodules
D
DCloud_LXH 已提交
22

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

- uni-canvas  
DCloud-yyl's avatar
DCloud-yyl 已提交
29
  [canvas画布组件](../component/canvas.md)模块(`HBuilderX4.25+`),包括内置组件:[canvas](../component/canvas.md);包括API:[UniCanvasElement](../dom/unicanvaselement.md)[CanvasRenderingContext2D](../dom/canvasrenderingcontext2d.md)  
DCloud-yyl's avatar
DCloud-yyl 已提交
30
  依赖的模块:无  
D
DCloud_LXH 已提交
31

32
- uni-cloud-client  
DCloud-yyl's avatar
DCloud-yyl 已提交
33 34
  调用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  
D
DCloud_LXH 已提交
35

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

41
- uni-createWebviewContext  
DCloud-yyl's avatar
DCloud-yyl 已提交
42 43
  创建 web-view 组件的上下文对象模块,包括API:[uni.createWebviewContext](../api/create-webview-context.md)  
  依赖的模块:无  
D
DCloud_LXH 已提交
44

45
- uni-facialRecognitionVerify  
DCloud-yyl's avatar
DCloud-yyl 已提交
46 47
  [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)  
  依赖的模块:无  
D
DCloud_LXH 已提交
48

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

53
- uni-getLocation-system  
DCloud-yyl's avatar
DCloud-yyl 已提交
54 55
  系统定位模块,包括API:[uni.getLocation](../api/get-location.md)  
  依赖的模块:无  
D
DCloud_LXH 已提交
56

57
- uni-getNetworkType  
DCloud-yyl's avatar
DCloud-yyl 已提交
58 59
  获取网络类型模块,包括API:[uni.getNetworkType](../api/get-network-type.md)  
  依赖的模块:无  
D
DCloud_LXH 已提交
60

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

66
- uni-payment  
DCloud-yyl's avatar
DCloud-yyl 已提交
67 68 69
  uni-payment请求支付模块,包括API:[uni.requestPayment](../api/request-payment.md)  
  依赖的模块:无  
  注意:此模块仅包含基础支付模块,需手动配置支付方式,详情参考[uni-payment](#uni-payment)章节  
70

71
- uni-getProvider  
DCloud-yyl's avatar
DCloud-yyl 已提交
72 73
  获取服务供应商模块(`HBuilderX4.11+`),包括API:[uni.getProvider](../api/get-provider.md#getprovider)  
  依赖的模块:无  
DCloud-yyl's avatar
DCloud-yyl 已提交
74

75
- uni-push  
DCloud-yyl's avatar
DCloud-yyl 已提交
76 77
  [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)  
  依赖的模块:无  
DCloud-yyl's avatar
DCloud-yyl 已提交
78

79
- uni-media  
DCloud-yyl's avatar
DCloud-yyl 已提交
80 81
  多媒体相关API模块,包括API:[uni.chooseImage](../api/choose-image.md)[uni.previewImage](../api/preview-image.md)[uni.saveImageToPhotosAlbum](../api/save-image-to-photos-album.md)[uni.getImageInfo](../api/get-image-info.md)[uni.compressImage](../api/compress-image.md)[uni.chooseVideo](../api/choose-video.md)[uni.saveVideoToPhotosAlbum](../api/save-video-to-photos-album.md)[uni.getVideoInfo](../api/get-video-info.md)[uni.compressVideo](../api/compress-video.md)  
  依赖的模块:无  
DCloud-yyl's avatar
DCloud-yyl 已提交
82

83
- uni-network  
DCloud-yyl's avatar
DCloud-yyl 已提交
84 85 86 87
  网络请求(文件上传/下载)模块,包括API:[uni.downloadFile](../api/download-file.md)[uni.request](../api/request.md)[uni.uploadFile](../api/upload-file.md)  
  依赖的模块:无  

- uni-virtualPayment  
DCloud-yyl's avatar
DCloud-yyl 已提交
88
  虚拟支付模块(`HBuilderX4.25+`),包括API:[uni.requestVirtualPayment](../api/virtual-payment.md#requestvirtualpayment)[uni.getVirtualPaymentManager](../api/virtual-payment.md#getvirtualpaymentmanager)  
DCloud-yyl's avatar
DCloud-yyl 已提交
89
  依赖的模块:无  
DCloud-yyl's avatar
DCloud-yyl 已提交
90

91
- uni-video  
DCloud-yyl's avatar
DCloud-yyl 已提交
92 93
  [video视频组件](../component/video.md)模块,包括内置组件:[video](../component/video.md);包括API:[uni.createVideoContext](../api/create-video-context.md)  
  依赖的模块:无  
94

95
- uni-websocket  
DCloud-yyl's avatar
DCloud-yyl 已提交
96 97
  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)  
  依赖的模块:无  
98

99
- uni-verify  
DCloud-yyl's avatar
DCloud-yyl 已提交
100 101
  [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)  
  依赖的模块:无  
DCloud-yyl's avatar
DCloud-yyl 已提交
102

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

D
DCloud_LXH 已提交
105 106
**注意**
uts插件中暂不支持摇树,如果uts插件中使用了以上模块,需在使用此uts插件的 uni-app x 项目 manifest.json 文件的 app -> distribute -> modules 下手动添加对应节点:
107
```json
D
DCloud_LXH 已提交
108
	//以下示例手动添加  uni-media  模块
109 110 111 112
	modules:{
		"uni-media":{}
	}
```
D
DCloud_LXH 已提交
113

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

W
wanganxp 已提交
116 117 118 119 120 121
**开屏广告兼容性**

|Web|Android|iOS	|
|--	|--			|--		|
|x	|3.99		|4.22	|

DCloud-yyl's avatar
DCloud-yyl 已提交
122

DCloud-yyl's avatar
DCloud-yyl 已提交
123
[uni-ad](https://uniad.dcloud.net.cn/) 是DCloud提供的聚合广告服务,使用前需先登录 [uni-ad 广告联盟](https://uniad.dcloud.net.cn/) 开通。
DCloud-yyl's avatar
DCloud-yyl 已提交
124

W
wanganxp 已提交
125 126 127 128 129 130 131
在uni-app x客户端,uni-ad是一个独立模块。该SDK已经在工信部完成SDK备案,确保隐私合规。

广告包括很多形式,其中有的需要开发代码调用,比如激励视频广告,另参考:[uni.createRewardedVideoAd](../api/create-rewarded-video-ad.md)

使用开屏广告不需要调用任何API,应用启动时会自动拉取并展示开屏广告。

这也导致 uni-ad 模块无法参与摇树。需要开发者在 manifest.json 中手动配置,打包后才能生效。
W
x  
wanganxp 已提交
132

133
使用 uni-ad 模块需在 manifest.json 文件中添加 uni-ad 节点,并配置使用的广告 SDK。
DCloud-yyl's avatar
DCloud-yyl 已提交
134

D
DCloud_LXH 已提交
135 136
### 配置三方广告SDK
在 app -> distribute -> modules 下添加 uni-ad 节点:
DCloud-yyl's avatar
DCloud-yyl 已提交
137 138 139 140 141 142 143 144 145 146 147 148
```json
	modules:{
		"uni-ad":{
			"gdt":{},
			"gm":{},
			"ks":{},
			"sgm":{},
			"bd":{}
		}
	}
```

D
DCloud_LXH 已提交
149
其中 uni-ad 下的节点表示要聚合的广告平台:
DCloud-yyl's avatar
DCloud-yyl 已提交
150 151 152 153 154 155 156
| 标识 | 广告平台名称 |
| :-  | :- |
| gdt | 腾讯优量汇广告联盟 |
| gm | 穿山甲GroMore |
| ks | 快手广告联盟 |
| sgm | Sigmob广告联盟 |
| bd | 百度百青藤广告联盟 |
DCloud-yyl's avatar
DCloud-yyl 已提交
157

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

W
wanganxp 已提交
160 161 162
注意:
- 穿山甲GroMore、快手广告联盟、腾讯优量汇广告联盟仅支持`armeabi-v7a``arm64-v8a`两个CPU平台。
- 目前仅支持上述国内广告平台,国际广告暂不支持。
DCloud-yyl's avatar
DCloud-yyl 已提交
163

164
::: warning 注意事项  
W
wanganxp 已提交
165 166
开屏广告展示前会先显示`splash启动界面`,等待开屏广告服务器返回数据后渲染开屏广告,超过2.5秒未成功加载广告则不显示开屏广告,直接进入应用首页。  
app平台默认`启动界面`为白色(暗黑模式下为黑色),为了避免等待加载开屏广告时白屏,建议开通开屏广告后在manifest中配置`启动界面`,详情参考[splash启动界面](./manifest-splashscreen.md)  
167 168
:::

WOSHIMAHAIFENG's avatar
WOSHIMAHAIFENG 已提交
169 170 171 172 173
## uni-payment@uni-payment
> HBuilderX 4.11+ 新增支持 uni-payment 请求支付

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

D
DCloud_LXH 已提交
174
使用 uni-payment 模块需在 manifest.json 文件中添加如下配置:
WOSHIMAHAIFENG's avatar
WOSHIMAHAIFENG 已提交
175

D
DCloud_LXH 已提交
176 177
### 配置支付SDK
在 app -> distribute -> modules 下添加 uni-payment 节点:
WOSHIMAHAIFENG's avatar
WOSHIMAHAIFENG 已提交
178 179
```json
  	modules:{
zhaofengliang920817's avatar
zhaofengliang920817 已提交
180 181 182 183 184 185 186
	     	"uni-payment": {
              "alipay": {},//支付宝支付
              "wxpay": {//微信支付
                "android": {},
                "ios": {
                    "appid": "wxd569c7238830733b",
                    "universalLink": "https://uniappx.dcloud.net.cn/ulink/"
WOSHIMAHAIFENG's avatar
WOSHIMAHAIFENG 已提交
187
                }
zhaofengliang920817's avatar
zhaofengliang920817 已提交
188 189
              }
          }
WOSHIMAHAIFENG's avatar
WOSHIMAHAIFENG 已提交
190 191 192
	}
```

D
DCloud_LXH 已提交
193
其中 uni-payment 下的节点表示要聚合的支付方式:
WOSHIMAHAIFENG's avatar
WOSHIMAHAIFENG 已提交
194 195 196 197 198
| 标识 | 支付方式 |
| :-  | :- |
| alipay | 支付宝支付 |
| wxpay | 微信支付 |

D
DCloud_LXH 已提交
199
添加相应的节点,云端打包就会将对应的支付 SDK 打包到最终安装包中。
WOSHIMAHAIFENG's avatar
WOSHIMAHAIFENG 已提交
200

D
DCloud_LXH 已提交
201 202 203 204 205 206 207
- 支付宝支付
  app平台无需配置参数,配置`alipay`节点表示应用云端打包包含支付宝SDK
- 微信支付
  app-android平台无需配置参数,app-ios平台需配置以下参数:
  + `appid`:微信开放平台申请的应用ID(AppID)
  + `universalLink`:iOS平台的通用链接(Universal Link),通用链接配置参考:[https://uniapp.dcloud.net.cn/tutorial/app-ios-capabilities.html#通用链接-universal-link](https://uniapp.dcloud.net.cn/tutorial/app-ios-capabilities.html#%E9%80%9A%E7%94%A8%E9%93%BE%E6%8E%A5-universal-link)
    注意:通用链接必须与微信开放平台 “管理中心” > “应用详情” > “开发信息” 中的“Universal Links”项中配置一致
WOSHIMAHAIFENG's avatar
WOSHIMAHAIFENG 已提交
208 209


D
DCloud_LXH 已提交
210
> app-ios平台支付模块需HBuilderX4.18及以上版本
WOSHIMAHAIFENG's avatar
WOSHIMAHAIFENG 已提交
211

zhaofengliang920817's avatar
zhaofengliang920817 已提交
212 213 214 215 216 217 218 219
## uni-getLocation@uni-getLocation
> HBuilderX 4.25+ 新增支持 provider 机制的获取定位API(支持system、tencent定位)

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

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


WOSHIMAHAIFENG's avatar
WOSHIMAHAIFENG 已提交
220 221 222 223 224 225 226 227 228 229 230 231 232 233 234 235 236 237 238
### 配置定位SDK
在 app -> distribute -> modules 下添加 uni-getLocation 节点:
```json
	modules:{
		"uni-getLocation":{
			"system":{},
			"tencent":{}
		}
	}
```

其中 uni-getLocation 下的节点表示要聚合的定位方式:
| 标识 | 定位方式 |
| :-  | :- |
| system | 系统定位 |
| tencent | 腾讯定位 |

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