繁体   English   中英

在 Cocoa 中运行单独的插件

[英]Running separate plugins in Cocoa

我试图按照插件架构指南将我所有的 Web 渲染类分离到一个单独的插件中,但与 Mail.app 不同,加载的 NSBundle 嵌入在我的应用程序中运行,而不是单独运行在像 Mail.app 这样的进程中。 我如何反映这种行为并使我的插件也在单独的进程中运行?

邮件插件

出于好奇,WKWebView 在 OSX 上使用时会自动生成这些进程。

正如@tbodt 上面提到的,XPC 服务也是一个选项,但通信接口不允许真正的 UI 分离,因为没有明确的 XPC 主线程概念 - 因此您不能在 XPC 服务中实例化 AppKit 类。

Apple 很可能使用其 NSExtension API 来托管进程外插件。 不幸的是,虽然这个 API 是公开的,可以为 Apple 操作系统创建插件,但应用程序托管自己的插件仍然是私有的。 Apple 的文档仅引用了旧的、过时的和不安全的 CFPlugin 架构(直接将包加载到主机进程中)。 如果您希望在自己的应用程序中使用此功能,我强烈建议您在https://feedbackassistant.apple.com上提供反馈

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM