適用情境
基於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。