在 iOS、iPadOS 和 macOS 中支援延伸功能
iOS、iPadOS 和 macOS 讓 App 可透過延伸功能來對其他 App 增加功能。延伸功能是具有特殊用途的已簽署可執行二進位程式碼,封裝在 App 內。安裝期間,系統會自動偵測延伸功能,並提供給使用相符系統的其他 App 使用。
擴充點
支援延伸功能的系統區域稱為擴充點。每個擴充點都提供 API,並為該區域強制執行規則。系統依據擴充點特定的比對規則來決定哪些延伸功能可供使用。系統會自動視需要啟動延伸功能程序,並管理這些程序的生命週期。授權可用來限制特定系統 App 的延伸功能可用性。例如,「今天顯示方式」小工具只會顯示在「通知中心」內,而共享的延伸功能則只能從「共享」面板中使用。舉例來說,「今天」小工具、「分享」、「動作」、「照片編輯」、「檔案提供程式」和「自訂鍵盤」都是擴充點。
延伸功能的通訊方式
延伸功能會在自己的位址空間中執行。App 與其啟動的延伸功能之間的通訊使用由系統架構所協調的程序間通訊。它們無法存取彼此的檔案或記憶體空間。延伸功能的設計旨在將它們彼此區隔、與包含該延伸功能的 App 區隔,並且與使用它們的 App 加以區隔。與其他第三方 App 類似,延伸功能也以沙盒技術限制,且擁有的容器會與包含 App 的容器隔開。不過,延伸功能與其容器 App 對隱私權控制具有相同的存取權限。因此,若使用者對 App 授予「聯絡人」的存取權限,該 App 中嵌入的延伸功能也會獲得此許可權,但由 App 啟動的延伸功能則不具有該許可權。
自訂鍵盤的使用方式
自訂鍵盤是一種特殊類型的延伸功能,是由使用者啟用且適用於整個系統。鍵盤延伸功能啟用後,會用於所有文字欄位,但密碼輸入和任何安全文字的顯示方式除外。為了限制使用者資料的傳送,在預設情況下自訂鍵盤是在一個十分受限的沙盒中執行,該沙盒會阻止連接網路、阻止代表程序執行網路操作的服務,並阻止可允許延伸功能暗中輸入資料的 API。自訂鍵盤的開發者可以要求其延伸功能擁有「開放存取」的權限,讓系統在得到使用者的同意後在預設的沙盒中執行延伸功能。
MDM 與延伸功能
對於在行動裝置管理(MDM)解決方案中註冊的裝置,文件和鍵盤延伸功能將遵循「受管理的打開方式」原則。例如,MDM 解決方案可協助防止使用者將受管理 App 中的文件輸出到未受管理的「文件提供程式」,或協助防止他們在受管理的 App 中使用未受管理的鍵盤。此外,App 開發者可避免在其 App 中使用第三方的鍵盤延伸功能。