構成元素和相容性
迷你應用程式是需要超級應用程式才能執行的小型應用程式 (通常為 2 至 4 MB)。無論是否使用超級應用程式,這些應用程式都使用 HTML、CSS 和 JavaScript 等網頁技術建構而成,迷你應用程式的執行階段是超級應用程式中的 WebView,而不是底層作業系統,因此迷你應用程式可跨平台運作。同一個超級應用程式可在 Android、iOS 或其他作業系統上執行相同的迷你應用程式。不過,並非所有迷你應用程式都能在所有超級應用程式中執行,詳情請參閱後文。
探索
使用者通常會透過品牌 2D 條碼臨時發現迷你應用程式,這可解決從實體到線上的重要挑戰,例如從實體餐廳菜單找到付款迷你應用程式,或是從實體電動滑板車找到租賃迷你應用程式。下圖為 WeChat 的示範迷你應用程式的品牌 2D 條碼範例。當使用者用 WeChat 超級應用程式掃描這組代碼時,系統會直接啟動迷你應用程式。其他超級應用程式通常無法辨識條碼。

您也可以透過超級應用程式中的一般應用程式內搜尋功能發現迷你應用程式,或是在聊天訊息中分享迷你應用程式,或是將迷你應用程式納入新聞動態中的新聞項目。部分超級應用程式會提供已驗證的帳戶概念,這些帳戶可在個人資料中包含迷你應用程式。當迷你應用程式與使用者所在位置相近時,系統會加以醒目顯示,例如使用者站在商家前方時,商家迷你應用程式就會顯示;或是使用者在超級應用程式中取得路線時,系統會顯示附近的迷你應用程式。許多超級應用程式都會在應用程式導覽匣中提供常用的迷你應用程式,使用者可以透過向下滑動手勢或超級應用程式選單中的特殊區段存取這些應用程式。
使用者體驗
所有超級應用程式都會為迷你應用程式提供大致相同的使用者介面。可設定主題的頂端列,其中顯示迷你應用程式的名稱。在畫面頂端的右上角,有一個關閉按鈕,前面是動作選單,可提供常用功能,例如分享應用程式、將應用程式新增至我的最愛清單或主畫面、回報濫用行為的應用程式、提供意見回饋,以及設定。下圖顯示在 Alipay 超級應用程式中執行的購物迷你應用程式,以及已開啟的動作選單。

UI 典範
通常,迷你應用程式的主要導覽功能會使用底部分頁列。大多數超級應用程式供應商都提供元件,可協助開發人員快速實作常見的 UI 模式,例如輪轉介面、摺疊式介面、進度列、旋轉器、切換鈕、地圖等。這也有助於讓不同小程式之間的使用者體驗保持一致,這也是 WeChat 的小程式設計指南所鼓勵的做法。這與 Apple 透過其 Apple 使用者介面指南和 Google 透過其 Android 設計建議提供獎勵的做法類似。

供應
迷你應用程式會以加密封裝的應用程式形式提供,也就是在單一檔案中包含所有資源的封存檔。與一般網路應用程式不同,超級應用程式供應商會直接提供迷你應用程式,而非從迷你應用程式建立工具的特定來源提供。他們仍可從迷你應用程式建立工具的伺服器存取 API,但核心資源 (通常稱為應用程式殼層) 必須由超級應用程式供應器提供。迷你應用程式必須宣告要從哪些來源要求額外資料。
快取、更新和深層連結
迷你應用程式會保留在超級應用程式的快取中,因此使用者下次啟動快取的迷你應用程式時,幾乎可立即載入。如果有更新,系統會載入新的應用程式套件。版本號碼可納入啟動 URI (請參閱「探索」),讓超級應用程式提早得知本機快取版本是否仍為最新版本。啟動 URI 也可視需要包含所需的迷你應用程式頁面,因此可深層連結至迷你應用程式的特定頁面。透過網站地圖,迷你應用程式可以宣告哪些網頁應由超級應用程式供應商的迷你應用程式檢索器建立索引。

安全性和權限
超級應用程式供應商會審查迷你應用程式,因此使用者會認為迷你應用程式比網頁應用程式更安全。他們必須先在資訊清單或迷你應用程式設定檔中宣告可能需要的權限,對於部分供應商,還必須說明為何需要每項權限。迷你應用程式當然還是可以說謊,但如果沒有明顯的使用者理由,就很難解釋為何要嘗試存取動作感應器。與網頁相比,使用者指紋的誘因明顯降低,因為使用者通常已登入超級應用程式 (請參閱「身分、付款和社交圖譜」)。
每當迷你應用程式執行需要特殊權限的作業時,系統都會向使用者顯示提示,如果平台強制執行,則會一併顯示開發人員所述的使用理由。下方螢幕截圖顯示 Douyin 示範迷你應用程式,當中要求使用者授予位置資訊存取權。在某些超級應用程式中,也有指令式 API,可讓迷你應用程式在未立即使用權限的情況下要求權限,或是只檢查權限狀態。這甚至可能包括用於開啟中央超級應用程式權限設定的 API,對應於 Chrome 的「網站設定」。迷你應用程式也必須事先宣告所有可能會要求資料的伺服器來源。

使用強大功能
代管超級應用程式會透過 JavaScript 橋接,將強大的 API 插入超級應用程式提供的 WebView (請參閱「建構元素和相容性」)。這個 JavaScript 橋接程式會提供鉤子,用於連結至作業系統的 API。舉例來說,getConnectedWifi()
這類迷你應用程式 JavaScript 函式 (迷你應用程式取得目前有效 Wi-Fi 網路名稱的功能) 在幕後會透過 Android 的 getConnectionInfo()
API 或 iOS 的 CNCopyCurrentNetworkInfo()
API 運作。常見超級應用程式中公開的其他強大裝置 API 包括藍牙、NFC、iBeacon、GPS、系統剪貼簿、方向感應器、電池資訊、日曆存取權、電話簿存取權、螢幕亮度控制、檔案系統存取權、提供物理回饋的震動硬體、相機和麥克風存取權、螢幕錄影和螢幕截圖建立、網路狀態、UDP 通訊端、條碼掃描、裝置記憶體資訊等。

存取雲端服務
許多超級應用程式也提供超級應用程式供應商的雲端服務「無伺服器」存取權,除了原始雲端運算和雲端儲存空間之外,通常還包括更高層級的工作,例如文字翻譯、圖片中的物件偵測或內容分類、語音辨識或其他機器學習工作。超級應用程式供應商通常會提供廣告,而您可以透過這些廣告為迷你應用程式營利。超級應用程式平台通常也會提供雲端分析資料,讓迷你應用程式開發人員進一步瞭解使用者與應用程式的互動方式。
身分、付款、社交關係圖
迷你應用程式非常重要的功能,就是從超級應用程式共用身分和社交圖表資訊。Douyin 或 WeChat 等超級應用程式一開始是廣義上的社群網路網站,使用者擁有身分 (有時甚至經過政府驗證)、好友或追蹤者網路,並經常儲存付款資料。舉例來說,購物迷你應用程式可以 (甚至有時必須) 直接透過超級應用程式的付款 API 處理任何付款,並在取得使用者同意後,取得使用者的運送地址、電話號碼和全名等資料,完全不必強迫使用者填寫表單。在下方,您可以看到在 WeChat 中執行的 Walmart 迷你應用程式,第一次開啟時,會以熟悉的面孔向我打招呼。

只要讓使用者分享成就 (例如遊戲中的高分),並透過狀態更新向聯絡人發起挑戰,就能讓迷你應用程式廣受歡迎。這樣一來,使用者只要輕觸一下,就能進入競賽,因此可擴大觸及範圍。
特別銘謝
本文由 Joe Medley、Kayce Basques、Milica Mihajlija、Alan Kent 和 Keith Gu 共同審查。