隨著智能手機的普及,移動應用成為了人們生活中必不可少的一部分。但是一些應用程序過于復雜或需要較高權限,在一些場景下使用不太方便。這個時候,諸如“小程序”、“微應用”等輕量級應用出現在人們眼前。Apple也借鑒并升級了這個概念,提出了App Clip,并在iOS 14中加以實現。
App Clip是iOS 14上的一種新的應用程序形式,它可以讓用戶在不安裝應用程序的情況下使用部分功能。在頁面、應用內或系統外,掃碼或點擊App Clip的鏈接將直接進入該服務的相關部分,而不是必須下載整個應用程序。按照蘋果官方的說法,這種手段可以讓用戶快速地做一些小事情,“如停車、購買咖啡等等”。
下面我們來詳細了解一下App Clip 的實現原理。
### 1. App Clip 的運行流程

App Clip 的運行流程如上圖所示,可以分為以下幾步:
1. 用戶在頁面、應用內、系統外掃描二維碼或是通過鏈接進入App Clip;
2
. App Clip 直接從 App Clip server 端獲取打開參數;
3. App Clip 運行后,可以調用與應用程序共享相同的代碼,也可以單獨使用子集;
4. 用戶在App Clip內進行操作并可以參與購買等交互性操作;
5. 操作完成后,App Clip 退出并通過一些傳輸方式向App Clip服務器發送完成的信息。
### 2. 實現方式
#### 2.1. 應用程序擴展
為了實現App Clip,可以在應用程序基礎上增加路徑過濾器,以便只依賴子集的部分內容能夠在 App Clip 中運行。 Apple 在iOS 10中引入了應用程序擴展機制,可以將應用程序劃分為主應用和擴展程序,并可以通過定義擴展點來啟動單獨的擴展應用程序,以不同方式擴展了整個應用程序。與此同時,一般應用程序也可以調用應用擴展中定義的特定功能。例如,Safari應用程序可以調用“分享擴展程序”、“文本編輯擴展程序”、“廣告攔截擴展程序”等。
在 App Clip 中,應用擴展需要實現與剩余應用程序相同的各個部分,同時需要實現可重復使用的子集,以便沒有安裝應用程序時可以獨立運行。擴展必須定義一個通用的“App Clip”Action,用于處理從App Clip URL傳遞而來的信息。
#### 2.2. App Clip狀態與管理
App Clip盡可能地保證其獨立運行,同時也要與主應用程序共享必要的數據和配置。App Clip橋接器用于交換數據來監視管理與主程序的變化。這些操作更多的是為App Clip提供監視和更新支持,以確保互操作性和數據安全。
與應用程序不同APP開發,App Clip超時時間為5分鐘。這意味著應用程序必須在5分鐘內啟動后立即退出。這樣,App Clip在后續使用中可以重新啟動,而不會進行任何額外的交互。
### 3. 總結
App Clip可以快速而無縫地向用戶提供移動體驗,同時也可以減少主程序下APP載的負擔。它的實現原理基于 iOS 14 的應用擴展機制、AppClip URL等關鍵技術,可以最大限度地實現細節控制和靈活性。
現在,越來越多的應用程序使用App Clip來增強其用戶體驗,相信未來App Clip將會有更多的發展和優化。