我如何从应用程序扩展中使用IPC向iOS上包含的应用程序异步发送信息?
我想在我的应用程序扩展中使用进程间通信,在扩展对应用程序组的我如何从应用程序扩展中使用IPC向iOS上包含的应用程序异步发送信息?,ios,swift,ipc,ios-extensions,ios-app-group,Ios,Swift,Ipc,Ios Extensions,Ios App Group,我想在我的应用程序扩展中使用进程间通信,在扩展对应用程序组的UserDefaults数据库进行更改时通知其包含的应用程序。目前,当UserDefaults数据库被另一个进程更新时,似乎无法得到通知,因此我假设我必须在扩展和包含应用之间建立IPC,这似乎可以使用多种不同的方法: 组中的应用程序可以使用IPC机制(包括Mach IPC、POSIX信号量和共享内存以及UNIX域套接字)与组中的其他成员通信。在macOS中,使用应用程序组在两个沙盒应用程序之间或沙盒应用程序与非沙盒应用程序之间启用IPC
UserDefaults
数据库进行更改时通知其包含的应用程序。目前,当UserDefaults
数据库被另一个进程更新时,似乎无法得到通知,因此我假设我必须在扩展和包含应用之间建立IPC,这似乎可以使用多种不同的方法:
组中的应用程序可以使用IPC机制(包括Mach IPC、POSIX信号量和共享内存以及UNIX域套接字)与组中的其他成员通信。在macOS中,使用应用程序组在两个沙盒应用程序之间或沙盒应用程序与非沙盒应用程序之间启用IPC通信
我做了一些研究,似乎这些技术中的大多数是请求驱动的,而不是异步的。是否有一种好方法可以使用这些技术,以便我的扩展在更改应用程序组的用户默认值时通知我的应用程序
其他信息:
- 我正在构建的扩展是一个广播上传扩展
- 不能跨流程工作,因此不能用于此目的
- Swift中的解决方案是理想的,但Objective-C也不错
我知道这有点晚了,但其他人可能会发现它已被完全使用
对于进程间通知,iOS/macOS使用
达尔文通知
,但同样的方法也可以用于通知任何事件。i、 e.在UserDefaults
更新时生成通知。我已经试过了,它对共享AppGroup
的应用程序非常有效,不确定它是否适用于没有AppGroup
tho的应用程序
更新1:
这篇文章对于全面了解AppGroup/SharedContainers和IPC来说是一篇很好的文章