小程式新容器僅在 10.2.3 基準版本中提供,且僅支援 mPaaS 原生 AAR 的接入方式。更多資訊,請參考 原生 AAR 接入方式簡介。
前置條件
將小程式新容器接入 Android 之前,請確保您已經開通 mPaaS,並使用原生 AAR 的接入方式完成 mPaaS 接入。
接入步驟
小程式新容器接入步驟概述如下:
選擇基準。
下文將對各步驟操作進行詳細說明。
選擇基準
添加 10.2.3 基準。
添加小程式組件。
初始化配置
初始化 mPaaS
通過 mPaaS 架構初始化(推薦使用該方式)
在
Application
中添加初始化代碼。public class MyApplication extends Application { @Override public void onCreate() { super.onCreate(); // mPaaS 初始化 MP.init(this); } }
詳情請參考:初始化 mPaaS。
在
AndroidManifest.xml
中添加 meta 配置。<meta-data android:name="mpaas.init.param" android:value="com.xxx.xxx.MriverInitImpl" />
添加 com.xxx.xxx.MriverInitImpl,實現 MPInitParamManifest。
public class MriverInitImpl implements com.mpaas.MPInitParamManifest { @Override public MPInitParam initParam() { MriverInitParam mriverInitParam = MriverInitParam.getDefault(); mriverInitParam.setMriverInitCallback(new MriverInitCallback() { @Override public void onInit() { if (com.alibaba.ariver.kernel.common.utils.ProcessUtils.isMainProcess()) { // 小程式相關配置,比如自訂jsapi,titlebar等 } } @Override public void onError(Exception e) { } }); return MPInitParam.obtain().addComponentInitParam(mriverInitParam); } }
通過 MPInit 初始化 mPaaS
初始化 mPaaS,在 Application
中添加以下代碼。
public class MyApplication extends Application implements MPInitParam.MPCallback {
@Override
public void onCreate() {
super.onCreate();
// mPaaS 初始化
MriverInitParam mriverInitParam = MriverInitParam.getDefault();
mriverInitParam.setMriverInitCallback(new MriverInitCallback() {
@Override
public void onInit() {
if (com.alibaba.ariver.kernel.common.utils.ProcessUtils.isMainProcess()) {
// 小程式相關配置,比如自訂jsapi,titlebar等
}
}
@Override
public void onError(Exception e) {
}
});
MP.init(this, MPInitParam.obtain().setCallback(this).addComponentInitParam(mriverInitParam));
}
@Override
public void onInit() {
// init success
}
}
小程式驗簽配置
小程式容器提供包簽名驗證功能,預設 debug 包關閉,release 包開啟,可以通過 API 控制。
// 關閉簽名
MriverResource.disableVerify();
// 開啟簽名,其中xx為後台配置的私密金鑰對應的公開金鑰
MriverResource.enableVerify(MriverResource.VERIFY_TYPE_YES,"xx");
在上線前,建議開啟驗簽。有關小程式包驗簽配置的具體操作可參考 配置小程式包。
配置小程式包請求時間間隔
mPaaS 支援配置小程式包的請求時間間隔,可以通過 API 控制。
Mriver.setConfig("h5_nbmngconfig", "{\"config\":{\"al\":\"3\",\"pr\":{\"4\":\"86400\","
+ "\"common\":\"864000\"},\"ur\":\"1800\",\"fpr\":{\"common\":\"3888000\"}},"
+ "\"switch\":\"yes\"}");
其中 \"ur\":\"1800\"
為設定全域更新間隔的值,1800
為預設值,代表間隔時間長度,單位為秒,您可修改此值來設定您的全域小程式包請求間隔,範圍為 0 ~ 86400 秒(即 0 ~ 24 小時,0 代表無請求間隔限制)。
其他參數請勿隨意修改。
申請 UC 核心
使用小程式前,需要先申請並配置 UC 核心,沒有 UC 核心將無法使用 Android 小程式部分能力。
由於產品策略變更,UC 不再全面開放申請。從 2022.12.01 起不支援公開申請 UC Key。需要提交 UC Key 申請表,工作人員會進行審核並反饋申請的結果。
點擊 mPaaS > 基礎工具 > 產生 UC Key 簽名資訊,開啟 查詢簽名資訊 視窗。
在 查詢簽名資訊 視窗,填寫相關配置資訊,點擊 Next。
複製獲得的 SHA1 資訊。
將您在上一步申請獲得的 Key 填入專案的
AndroidManifest.xml
檔案中:<meta-data android:name="UCSDKAppKey" android:value="您申請獲得的 Key"/>
說明UC SDK 的授權資訊與 apk 的包名以及簽名綁定。因此,如果 UCWebView 沒有生效,檢查簽名和包名與申請時使用的資訊是否一致。
若 minSdkVersion >= 23,則需要在 AndroidManifest.xml
的 application
節點添加如下配置:
<application
...
android:extractNativeLibs="true">
...
</application>
使用 UC 核心,可以使小程式擁有同層能力,如嵌入 webview、嵌入地圖等,並且擁有更好的渲染體驗。
發布小程式
啟動小程式之前,您需要先通過 mPaaS 控制台發布該小程式,步驟如下。
進入小程式後台。登入 mPaaS 控制台,進入目標應用後,從左側導覽列進入 小程式> 小程式發布頁面。
配置虛擬網域名稱。如果是第一次配置虛擬網域名稱,請先在 小程式> 小程式發布> 組態管理中配置虛擬網域名稱。虛擬網域名稱可以為任意網域名稱,建議使用您的企業網域名稱,如
example.com
。建立小程式。進入 mPaaS 控制台,完成以下操作:
單擊左側導覽列的 小程式> 小程式發布。
在開啟的小程式包列表頁,單擊 建立。
在 建立小程式 視窗,填寫小程式的 ID 和小程式名稱,單擊 確定。其中,小程式 ID 為任意 16 位元字,例如 2018080616290001。
在小程式 App 列表下,找到新增的小程式,單擊 添加。
在基本資料欄,完成以下配置:
版本:填寫小程式包的版本號碼,例如
1.0.0.0
。用戶端範圍:選擇小程式 App 對應的 Android 用戶端最低版本和最高版本。在這個範圍內的用戶端 App 可以啟動對應的小程式,否則無法啟動。這裡最低版本可以填寫
0.0.0
,最高版本可以不填,代表用戶端所有版本都可以啟動這個小程式。說明此處務必填寫 Android 的用戶端版本,而非小程式版本。
表徵圖:單擊 選擇檔案上傳小程式包的表徵圖。第一次建立小程式時必須上傳表徵圖。樣本表徵圖如下:
檔案:上傳小程式包資源檔,檔案格式為
.zip
。我們準備了一個 mPaaS 樣本小程式(點此下載),可以直接上傳。說明在上傳前,需將此樣本小程式的
.zip
檔案名稱以及壓縮包內的檔案夾名均修改為小程式的 16 位元字 ID。
在配置資訊列,完成以下配置:
主入口 URL:必填,小程式的首頁。主入口 URL 格式為:
/index.html#xxx/xxx/xxx/xxx
,其中#
後方的xxx/xxx/xxx/xxx
是小程式的app.json
中的pages
中的第一個值。如下圖所示,mPaaS 樣本小程式的主入口為:/index.html#page/tabBar/component/index
。其他配置保持預設即可。
勾選 已確認以上資訊準確,提交後不再修改。
單擊 提交。
發布小程式。進入 mPaaS 控制台,完成以下步驟:
單擊左側導覽列的 小程式> 小程式發布> 小程式正式包管理。
在開啟的小程式包列表頁中,選擇您要發布的小程式包與版本,單擊 建立發布。
在建立發布工作列,完成以下配置:
發布類型:選擇 正式 發布類型。
發布描述:選填。
單擊 確定 完成發布建立。
啟動小程式
完成上述步驟之後,在 Android 工程中,通過如下代碼,啟動樣本小程式:
Mriver.startApp("2018080616290001");
上方代碼中的 2018080616290001
為小程式 ID,此處僅為本文樣本,操作中請填寫您的小程式 ID。