适用场景
基于uni-app开发的Native App,接入uni-app小程序容器。其他场景请参见Native App接入小程序容器章节接入,章节入口Android接入。
解决方案
下载Uniapp Native插件EMASUniAppPlugin。
解压
EMASUniAppPlugin.zip
,并将解压后的文件夹拷贝到uni-app工程下的nativeplugins
目录。使用HBuilderX打开uni-app工程,单击uni-app工程的
manifest.json
文件,选择App原生插件配置,再选择本地插件,勾选nativeplugins
目录下的EMASUniAppPlugin
。单击
manifest.json
,切换到源码视图,在app-plus
的module
下添加UniMP
参数。在uni-app工程中使用EMASUniAppPlugin和Uniapp小程序容器。
//获取uniapp小程序容器 const mp = uni.requireNativePlugin('uniMP'); //获取EMASUniAppPlugin插件 var emasModule = uni.requireNativePlugin("EMASUniAppPlugin");
EMASUniAppPlugin插件API
configEmas
var ret = emasModule.configEmas({
'appKeyAndroid': 'xxx',
'appSecretAndroid': 'xxx',
'channelIdAndroid': 'xxx',
'mtopDomain': 'xxx',
'useHttp': 'false',
'appKeyIOS': 'xxx',
'appSecretIOS': 'xxx',
'channelIdIOS': 'xxx'
})
初始化EMASUniAppPlugin插件,该方法是同步方法。
Parameters | |
appKeyAndroid | String:Android应用的appKey,从EMAS控制台获取。 |
appSecretAndroid | String:Android应用的EMAS的appSecret,从EMAS控制台获取。 |
channelIdAndroid | String: Android应用的channelId,从EMAS控制台获取。 |
mtopDomain | String:EMAS的mtop域名。 |
useHttp | boolean:是否使用http协议。 |
appKeyIOS | String:iOS应用的EMAS的appKey,从EMAS控制台获取。 |
appSecretIOS | String:iOS应用的EMAS的appSecret,从EMAS控制台获取。 |
channelIdIOS | String: iOS应用的channelId,从EMAS控制台获取。 |
updateMiniApp
emasModule.updateMiniapp({
'appId': 'xxx',
}, (ret) => {
})
更新小程序版本。如果小程序有新版本,调用该方法后会下载安装新版本小程序。该方法是异步方法。
Parameters | |
appId | String:小程序的id,从应用开放平台获取,详细操作请参见获取Miniapp ID。 |
miniAppVersion | String:小程序版本号,可以为空。如果传入的是null或空值,该方法会下载安装小程序。如果传入了具体的版本号,会根据传入的版本号检查小程序是否有更新,如果无更新不进行任何操作,如果有更新会下载安装小程序。 |
publishId | String:小程序的发布号,可以为空。 |
Returns | |
code | number:错误码。 |
errorMsg | String:错误信息。 |
wgtPath | String:小程序安装包路径。 |
uniAppId | String: 小程序的id。 |
version | String: 小程序的版本号。 |
publishType | String: 小程序发布类型。 |
示例:
emasModule.updateMiniapp({
'appId': '151624424672398147591',
}, (ret) => {
if (ret.code === 0) {
//通过小程序容器安装小程序
mp.installUniMP({
appid: '__UNI__151624424672398147591',
wgtFile: ret.wgtPath
}, (r) => {
if (0 == r.code) {
uni.showToast({
title: '安装成功'
});
//安装成功后,打开小程序
mp.openUniMP({
appid: '__UNI__151624424672398147591'
}, (ret) => {
if (0 != ret.code) {
uni.showModal({
title: '启动失败',
content: JSON.stringify(ret),
showCancel: false
});
}
console.log('openUniMP: ' + JSON.stringify(ret));
});
} else {
uni.showModal({
title: '安装失败',
content: JSON.stringify(r),
showCancel: false
});
}
console.log('installUniMP: ' + JSON.stringify(r));
});
}
})
getMiniappList
emasModule.getMiniappList({
'appIdList': '[xxx]',
}, (ret) => {
})
获取小程序列表。该方法是异步方法。
Parameters | |
appIdList | String:小程序id列表,从应用开放平台获取,详细操作请参见获取Miniapp ID。 |
Returns | |
code | number:错误码。 |
errorMsg | String:错误信息。 |
listData | String:小程序列表。 |
获取Miniapp ID
登录应用开放平台。
选择所属空间并进入,系统进入Overview页面。
说明如果您仅有一个空间的权限,登录后无需选择空间,可直接进入Overview页面。
在左侧导航栏中,选择Miniapps,系统进入Miniapp List页面。
在Miniapp List页面,查看并记录ID。