什麼是迷你應用程式?

迷你應用程式 (通常為 2 至 4 MB) 需要執行超級應用程式的小型應用程式。這些元件的共通點,與超級應用程式無關,都是使用網路技術 HTML、CSS 和 JavaScript 的 (「方言」) 建構而成。迷你應用程式的執行階段是超級應用程式中的 WebView,而非底層作業系統,因此能跨平台呈現迷你應用程式。無論超級應用程式是在 Android、iOS 或其他 OS 上執行,同一個迷你應用程式都可以在同一個超級應用程式中執行。不過,並非所有迷你應用程式都可以在所有超級應用程式中執行,詳情請見稍後

迷你應用程式經常透過帶有品牌的 2D 條碼特別發現,進而解決一項重要的離線到線上挑戰,例如:從實體餐廳菜單前往付款迷你應用程式,或從實體電動機車前往出租迷你應用程式。下圖為 WeChat 的超級迷你應用程式直接啟動該品牌 2D 條碼的範例。其他超級應用程式通常無法辨識條碼。

WeChat 品牌 2D 條碼。
使用 WeChat 應用程式掃描這個 2D 條碼,即可啟動試用版迷你應用程式。

使用者也可以在超級應用程式中透過一般應用程式內搜尋功能探索迷你應用程式、在即時通訊訊息中分享,或是成為新聞動態消息中新聞項目的一部分。部分超級應用程式不知道已驗證的帳戶,其設定檔中可以包含迷你應用程式。當迷你應用程式位於地理位置附近時 (例如使用者站在前商家的迷你應用程式),或是以虛擬方式關閉 (例如使用者在超級應用程式中顯示的地圖上規劃路線時),都可以醒目顯示這類應用程式。應用程式導覽匣中的常用迷你應用程式可在許多超級應用程式中透過滑動手勢,或透過超級應用程式選單中的特殊部分存取。

使用者體驗

所有超級應用程式都具備與迷你應用程式相同或更少的使用者介面。設有主題的頂端列及迷你應用程式的名稱。畫面右上角有一個動作選單,旁邊會顯示關閉按鈕,方便您使用常用功能,例如分享應用程式、將其新增至常用清單或主畫面、回報違規應用程式、提供意見回饋及設定。以下螢幕截圖顯示購物迷你應用程式在 Alipay 超級應用程式中執行,且動作選單已開啟。

Alipay 超級應用程式正在執行購物迷你應用程式,頂端為醒目顯示的頂端列、動作選單按鈕和關閉按鈕。動作選單已開啟。
已開啟 Alipay 超級應用程式中執行的購物迷你應用程式動作選單。

UI 模式

迷你應用程式的主要導覽列通常會有一個底部分頁列。大多數供應商應用程式供應商都提供元件,可協助開發人員快速實作常見的 UI 模式,例如輪轉介面、摺疊元素、進度列、旋轉圖示、切換按鈕、地圖等。這也有助於讓不同迷你應用程式提供一致的使用者體驗,詳情請參閱 WeChat 的迷你計畫設計指南。 這與 Apple 透過《Apple 人機介面指南》以及 Google 採用的 Android 設計建議提供的獎勵類似。

Douyin 試用版迷你應用程式展示了 Douyin 滑桿 (輪轉介面) 元件,並提供自動推進、圓點指標等的切換按鈕。
Douyin 的滑桿 (輪轉介面) 元件,提供多種選項。

提供中

迷你應用程式不會一如單獨提供,而是以加密封裝應用程式的形式提供,也就是將所有資源的封存檔視為單一檔案。與一般網頁應用程式不同,這類應用程式並非來自迷你應用程式建立者的特定來源,而是直接由主要應用程式供應商提供。仍可從迷你應用程式建立者的伺服器存取 API,但核心資源 (通常稱為應用程式殼層) 必須由超級應用程式供應商提供。迷你應用程式必須聲明其要求額外資料的來源。

快取、更新和深層連結

迷你應用程式會保留在超級應用程式的快取中,因此使用者下次啟動快取的迷你應用程式時,應用程式幾乎會立即載入。如果有更新,系統就會載入新的應用程式套件。版本號碼可以屬於啟動 URI (請參閱「探索」一節),這樣當本機快取版本仍為目前時,超級應用程式就能及早得知。啟動 URI 也視需要包含所需的迷你應用程式頁面,因此可以深層連結到迷你應用程式的特定頁面。透過 Sitemap,迷你應用程式可以宣告哪些網頁應由超級應用程式供應商的迷你應用程式檢索器建立索引。

macOS Finder 顯示資料夾,內含已快取的 WeChat 迷你應用程式「.wxapkg」檔案。
系統會將迷你應用程式快取為加密的封裝應用程式。

安全性和權限

迷你應用程式會由超級應用程式供應商審查,也就是說,使用者認為這些應用程式比網頁應用程式更為安全。他們需要事先在資訊清單或迷你應用程式設定檔中宣告可能所需的權限,對部分供應商來說,也需要說明為何需要這些權限。當然,迷你應用程式仍不易察覺,但可能難以明確說明其原因,例如嘗試存取動作感應器,卻無意向使用者提供明顯資訊。相較於網路使用者,使用者指紋的誘人明顯少許多,因為使用者通常已登入超級應用程式 (請參閱身分、薪資和社交圖譜)。

每當迷你應用程式執行需要特殊權限的作業時,系統都會向使用者顯示提示,說明如果平台強制執行,該指令也包含開發人員說明的使用理由。以下螢幕截圖顯示 Douyin 示範迷你應用程式,要求使用者授予分享位置資訊的權限。在某些超級應用程式中,設有命令式 API,讓迷你應用程式不必立即使用即可要求權限,或僅檢查權限狀態。您甚至可以加入 API,用於開啟核心應用程式權限設定 (對應 Chrome 的「網站設定」)。針對可能會要求資料的所有伺服器,迷你應用程式也必須事先宣告該伺服器的來源。

Douyin 試用版迷你應用程式顯示地理位置提示,當中包含「不允許」和「允許」兩個選項。
Douyin 試用版迷你應用程式,要求取得地理位置存取權。

使用強大功能

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

WeChat 示範迷你應用程式顯示了滑桿,用於控制裝置的螢幕亮度。
WeChat 示範迷你應用程式會將裝置的螢幕亮度設為最大。

存取雲端服務

除了原始雲端運算和雲端儲存空間之外,許多超級應用程式也能讓您以「無伺服器」存取雲端服務。除了原始雲端運算和雲端儲存空間之外,通常也會包含較高階的工作,例如文字翻譯、物件偵測或圖片、語音辨識或其他機器學習工作的內容分類。迷你應用程式可以透過廣告營利,這是知名應用程式供應商常用的廣告。超級應用程式平台通常也會提供雲端數據分析資料,因此小型應用程式開發人員可以進一步瞭解使用者與應用程式互動的情形。

身分、付款、社交關係圖

迷你應用程式有一個重要功能,就是從超級應用程式分享的身分和社交關係圖資訊。像 Douyin 或 WeChat 這樣的超級應用程式起初是社群網站,因為使用者擁有 (有時甚至是政府驗證) 身分、好友或追蹤者網路,以及經常儲存付款資料。舉例來說,購物迷你應用程式可以透過超級應用程式的付款 API 直接處理任何付款,甚至在使用者同意後,就能取得運送地址、電話號碼和全名等使用者資料,不必強制使用者填寫表單。您可在下方看到在 WeChat 中執行的 Walmart 迷你應用程式,這是我們第一次開啟,以熟悉的臉孔問我。

Walmart 迷你應用程式在「Me」分頁中顯示作者的臉孔和姓名。
Walmart 迷你應用程式,首次使用時具有個人化「自己」檢視畫面。

迷你應用程式可讓使用者在遊戲中分享成就 (例如在遊戲中得到最高分),並向聯絡人挑戰狀態更新,因此備受歡迎。使用者只要輕觸迷你應用程式,就能參加競賽,沒有任何阻礙,且可藉由迷你應用程式擴大觸及範圍。

特別銘謝

本文由 Joe MedleyKayce BasquesMilica MihajlijaAlan Kent 及 Keith Gu 審核。