Skip to content

Shell コンテナ

Shell はミニプログラムランタイムのページコンテナで、完全な UI フレームワーク構造を組み立てる役割を担います。

構造

┌──────────────────────────────────┐
│           StatusBar              │  系统状态栏
├──────────────────────────────────┤
│           NavBar                 │  导航栏(标题、返回)
├──────────────────────────────────┤
│                                  │
│                                  │
│          Content Area            │  页面内容区域
│        (开发者页面)             │  (webview 渲染)
│                                  │
│                                  │
├──────────────────────────────────┤
│           TabBar                 │  底部标签栏(可选)
└──────────────────────────────────┘

Shell HTML の生成

Shell は minidev-shell パッケージによってビルド時に生成されます。コア関数 generateShellHtml()app.json の設定に基づき、完全な HTML 構造を出力します。

minidev-shell/index.js
  → generateShellHtml(appConfig)
    → NavBar HTML
    → Content Container
    → TabBar HTML(如果配置了 tabBar)
    → StatusBar HTML
    → 注入 runtime-src.js(运行时逻辑)
    → 注入 minidev-components(Web Components)

runtime-src.js

Shell のランタイムの中核は、次の処理を担います。

  1. イベント待受setupBridge() により Bridge イベントを待受します
  2. UI 描画 — イベント受信後、DOM の作成・更新を行います
  3. コールバックの返送 — ユーザー操作の結果を sendCallback() で返します
  4. Tab のグループ分けactiveGroup 状態の管理と Tab グループ切り替えの処理

サポートするイベント

イベント描画の挙動
UI.showLoadingLoading オーバーレイを作成します
UI.hideLoadingLoading オーバーレイを除去します
UI.showToastToast を表示します
UI.hideToastToast を除去します
UI.showDialogDialog を作成し、コールバックを待ちます
UI.alertAlert を作成し、コールバックを待ちます
UI.showActionSheetActionSheet を作成し、コールバックを待ちます
UI.setNavigationBarTitleNavBar のタイトル文言を更新します
UI.setNavigationBarColorNavBar の色を更新します
UI.showNavigationBarLoadingNavBar にローディングアニメーションを表示します
UI.hideNavigationBarLoadingNavBar のローディングアニメーションを隠します
UI.showTabBar / hideTabBarTabBar の表示/非表示
UI.setTabBarBadgeTab のバッジを設定します
UI.setTabBarItemTab 項目を更新します
UI.setTabBarStyleTabBar のスタイルを更新します
Router.setActiveGroupTab グループを切り替えます

Shell スタイルの設定

app.jsonwindow フィールドでグローバルスタイルを指定します。

json
{
  "window": {
    "navigationBarTitleText": "我的应用",
    "navigationBarBackgroundColor": "#ffffff",
    "navigationBarTextStyle": "black",
    "backgroundColor": "#f5f5f5"
  }
}
フィールド説明デフォルト値
navigationBarTitleTextNavBar のタイトル
navigationBarBackgroundColorNavBar の背景色#ffffff
navigationBarTextStyleNavBar の文字色black
backgroundColorページの背景色#ffffff

MiniDev Studio — ミニアプリ開発ツールキット