用途:BrowserEngineKit 是 Apple 提供的框架,用于在 iOS 与 iPadOS 上构建使用替代(非 WebKit)渲染引擎的浏览器,面向自行实现 HTML/CSS/JavaScript 引擎的应用。替代浏览器引擎目前支持在欧盟分发;日本分发要求启用内存完整性强制(MIE)。开发与测试可在任何地区进行。配套框架有 BrowserEngineCore(底层原语)与 BrowserKit(资格检查、数据导入导出)。
主要能力:架构由宿主应用与三类扩展组成,运行于独立进程——Web 内容扩展(HTML 解析、JS、DOM)、网络扩展(URLSession、socket)、渲染扩展(Metal、GPU、媒体)。宿主应用负责启动并管理全部扩展,扩展之间通过宿主中转的匿名 XPC 端点通信,遵循最小权限原则。提供进程管理(WebContentProcess、NetworkingProcess、RenderingProcess 及 makeLibXPCConnection()、invalidate())、能力授予(.foreground、.background、.suspended、.mediaPlaybackAndCapture)、图层托管与视图协调、文本交互(BETextInput、BETextInteraction、BEScrollView)、受限沙箱、JIT 编译支持、下载监控(BEDownloadMonitor)等。
使用方式:宿主应用需申请 com.apple.developer.web-browser 与 com.apple.developer.web-browser-engine.host 权限;各扩展需对应类型权限(webcontent、networking、rendering)。使用 BrowserKit 的 BEAvailability.isEligible(for: .webBrowser) 检查设备资格,不要硬编码地区判断。启动顺序为:宿主启动三类扩展、建立 XPC 连接、向网络与渲染扩展请求匿名端点、通过引导消息把端点发给 Web 内容扩展。分发需以 arm64e 构建(模拟器目标除外),并在 UIRequiredDeviceCapabilities 中加入 web-browser-engine。
适用场景与限制:适用于在欧盟(及满足条件的日本)分发替代引擎浏览器,或非浏览器应用内嵌替代引擎(使用 embedded-web-browser-engine 权限,仅 arm64,不支持浏览器扩展与 JIT)。JIT 权限仅可加在 Web 内容扩展,否则会被 App Store 拒绝;扩展不能启动其他扩展;进程对象在 invalidate() 后不可再用。具体权限申请流程、价格与更多细节资料暂未提供。