全部產品
Search
文件中心

SuperApp:基於uni-app開發的Native App如何接入uni-app小程式容器

更新時間:Oct 29, 2024

適用情境

基於uni-app開發的Native App,接入uni-app小程式容器。其他情境請參見Native App接入小程式容器章節接入,章節入口Android接入

解決方案

  1. 下載Uniapp Native外掛程式EMASUniAppPlugin

  2. 解壓EMASUniAppPlugin.zip,並將解壓後的檔案夾拷貝到uni-app工程下的nativeplugins目錄。

  3. 使用HBuilderX開啟uni-app工程,單擊uni-app工程的manifest.json檔案,選擇App原生外掛程式配置,再選擇本地外掛程式,勾選nativeplugins目錄下的EMASUniAppPlugin截屏2022-12-30 下午4截屏2022-12-30 下午4

  4. 單擊manifest.json,切換到源碼視圖,在app-plusmodule下添加UniMP參數。截屏2022-12-30 下午4

  5. 在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

  1. 登入應用開放平台。

  2. 選擇所屬空間並進入,系統進入Overview頁面。

    說明

    如果您僅有一個空間的許可權,登入後無需選擇空間,可直接進入Overview頁面。

  3. 在左側導覽列中,選擇Miniapps,系統進入Miniapp List頁面。

  4. Miniapp List頁面,查看並記錄ID。

    image