跳到主要內容

App Extensions

App 擴展功能讓您在主要應用程式之外提供自訂功能和內容。iOS 上有不同類型的應用程式擴展功能,它們都涵蓋在App Extension Programming Guide中。在本指南中,我們將簡要介紹如何在 iOS 上利用應用程式擴展功能。

擴展功能中的記憶體使用量

由於這些擴展功能是在常規應用程式沙箱之外載入的,因此很可能同時載入多個應用程式擴展功能。正如您可能預期的那樣,這些擴展功能的記憶體使用量限制很小。在開發應用程式擴展功能時,請記住這些限制。始終強烈建議在實際裝置上測試您的應用程式,在開發應用程式擴展功能時更是如此:開發人員經常發現他們的擴展功能在 iOS 模擬器中運作良好,但卻收到使用者報告說他們的擴展功能無法在實際裝置上載入。

我們強烈建議您觀看 Conrad Kramer 關於擴展功能中的記憶體使用量的演講,以瞭解更多關於此主題的資訊。

Today 小工具

Today 小工具的記憶體限制為 16 MB。事實證明,使用 React Native 實作的 Today 小工具可能無法可靠地運作,因為記憶體使用量往往過高。如果您的 Today 小工具產生「無法載入」訊息,您可以判斷它是否超出記憶體限制

始終確保在真實裝置中測試您的應用程式擴展功能,但請注意,這可能不足夠,尤其是在處理 Today 小工具時。Debug 配置的建置版本更可能超出記憶體限制,而 Release 配置的建置版本則不會立即失敗。我們強烈建議您使用Xcode 的 Instruments來分析您的真實世界記憶體使用量,因為您的 Release 配置建置版本很可能非常接近 16 MB 限制。在這種情況下,您可以透過執行常見操作(例如從 API 擷取資料)快速超過 16 MB 限制。

若要實驗 React Native Today 小工具實作的限制,請嘗試擴展react-native-today-widget中的範例專案。

其他應用程式擴展功能

其他類型的應用程式擴展功能比 Today 小工具具有更大的記憶體限制。例如,自訂鍵盤擴展功能限制為 48 MB,而分享擴展功能限制為 120 MB。使用 React Native 實作此類應用程式擴展功能更為可行。一個概念驗證範例是react-native-ios-share-extension