跳至主要内容

应用扩展

应用扩展允许您在主应用之外提供自定义功能和内容。iOS 上有不同类型的应用扩展,它们都包含在应用扩展编程指南中。在本指南中,我们将简要介绍如何在 iOS 上利用应用扩展。

扩展中的内存使用

由于这些扩展是在常规应用沙盒之外加载的,因此很可能同时加载多个应用扩展。正如您可能预料的那样,这些扩展的内存使用限制很小。在开发应用扩展时请记住这一点。始终强烈建议在实际设备上测试您的应用,尤其是在开发应用扩展时:开发人员经常发现他们的扩展在 iOS 模拟器中运行良好,但用户却报告他们的扩展在实际设备上无法加载。

我们强烈建议您观看 Conrad Kramer 关于扩展中的内存使用的演讲,以了解更多相关信息。

今日小组件

今日小组件的内存限制为 16 MB。实际上,使用 React Native 实现的今日小组件可能无法可靠地工作,因为内存使用往往过高。如果今日小组件显示“无法加载”消息,则表示它已超出内存限制。

始终确保在真实设备上测试您的应用扩展,但请注意,这可能还不够,尤其是在处理今日小组件时。调试配置的构建更有可能超出内存限制,而发布配置的构建不会立即失败。我们强烈建议您使用Xcode 的 Instruments来分析您的实际内存使用情况,因为您的发布配置构建很可能非常接近 16 MB 的限制。在这种情况下,执行常见操作(如从 API 获取数据)可能会很快超过 16 MB 的限制。

要试验 React Native 今日小组件实现的限制,请尝试扩展react-native-today-widget中的示例项目。

其他应用扩展

其他类型的应用扩展比今日小组件具有更高的内存限制。例如,自定义键盘扩展限制为 48 MB,共享扩展限制为 120 MB。使用 React Native 实现此类应用扩展更可行。一个概念验证示例是react-native-ios-share-extension