跳至主内容
版本:0.82

应用扩展

非官方测试版翻译

本页面由 PageTurner AI 翻译(测试版)。未经项目官方认可。 发现错误? 报告问题 →

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

扩展中的内存使用

由于这些扩展是在常规应用沙盒之外加载的,因此很有可能多个应用扩展会同时加载。正如你所料,这些扩展有较小的内存使用限制。在开发应用扩展时请牢记这些限制。始终强烈建议在真实设备上测试你的应用,在开发应用扩展时更是如此:开发者经常发现扩展在 iOS 模拟器上运行良好,但用户却报告在真实设备上无法加载。

今日小组件

今日小组件的内存限制为 16 MB。事实上,使用 React Native 实现的今日小组件可能运行不稳定,因为其内存占用往往过高。如果出现"无法加载"(Unable to Load)的消息,则说明你的今日小组件已超出内存限制:

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

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

其他应用扩展

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