

简体中文
uni-app项目发行打包为原生App时可支持运行uni小程序
,这里uni小程序
也是uni-app项目,为了便于理解,约定以下概念。
原生App-制作应用wgt包
,并在宿主App
安装后运行宿主App
中调用,而有的API仅支持在uni小程序中调用原生App-制作应用wgt包
生成的wgt文件,目前DCloud暂不提供uni小程序发布管理服务,需要开发者从自己业务服务器下载到本地,再调用小程序API
使用在HBuilderX中打开宿主App
项目的manifest.json文件,切换到源码视图
,在 "app-plus" -> "modules" 下添加 "UniMP"字段如下:
"UniMP": {
"description": "uni小程序"
}
保存后需提交云端打包
注意:需使用HBuilderX3.2.3及以上版本
宿主App开发时可以使用HBuilderX标准基座进行调试,调试成功后再提交云端打包
在HBuilderX中打开uni小程序
项目,选择菜单 "发行" -> "原生App-制作应用wgt包",打开"制作应用wgt包"界面:
点击"生成wgt"按钮,成功后保存在项目目录下的"unpackage\release"目录中,文件名称为:{$appid}.wgt
将上面生成的小程序wgt
文件拷贝到宿主App
项目目录下的"static"目录中
在宿主App
中安装小程序wgt
,示例代码如下:
installMP(){
//通过获取小程序版本API来判断是否已经安装
mp.getUniMPVersion('小程序的appid', (ret) => {
if(0!=ret.code){//获取失败可以认为没有安装此小程序
//安装小程序
mp.installUniMP({
appid:'小程序的appid',
wgtFile:'小程序wgt文件路径' //放在static目录路径为'/static/{$appid}.wgt',如果小程序wgt在服务器,需要先下载到本地再安装
}, (r)=>{
if(0==r.code){
console.log('安装成功');
}else{
console.log('安装失败: '+JSON.stringify(r));
}
});
}
});
}
在宿主App
中启动小程序wgt
,示例代码如下:
openMP(){
mp.openUniMP({
appid: '小程序的appid'
}, (ret)=>{
if(0!=ret.code){
console.log('启动失败: '+JSON.stringify(ret));
}
});
}
更多uni小程序相关API参考《uni小程序API文档》
注意
实际项目中uni小程序wgt文件应该从服务器下载,上面示例中将wgt放到宿主App的资源中只是为了方便演示。
[openUniMP(options,callback)](./unimpapi.md#openUniMP)
onLaunch
、onShow
中获取启动参数,详情参考《uni小程序API文档》中的获取启动参数
onLaunch
中监听事件,详情参考《uni小程序API文档》中的onUniMPEventReceive(callback)
uni.sendHostEvent(event,data,ret,callback)
onLaunch
中监听事件,详情参考《uni小程序API文档》中的uni.onHostEventReceive(callback)
sendUniMPEvent(appid,event,data,callback)
参考MyUniHost"示例,此示例工程包含完整的示例代码。