MMWormholeiOS 通訊框架
MMWormhole 是 iOS 擴展與宿主應用的通訊框架。在iOS或OS X擴展與其包含的應用程序之間建立了橋梁。用于在兩個位置之間來回傳遞數(shù)據(jù)或命令。郵件被存檔到寫入應用程序共享應用程序組的文件中。該效果與應用程序和擴展之間的進程間通信非常相似,盡管擴展和包含應用程序之間不存在真正的進程間通信。
還支持CFNotificationCenter達爾文通知,以支持實時更改通知。當消息傳遞到 wormhole 時,感興趣的各方可以在 wormhole 的任何一側(cè)偵聽并收到這些更改的通知。當通過 wormhole 發(fā)送消息時,其效果幾乎是雙方的即時更新。
MMWormhole旨在簡化在擴展及其包含的應用程序之間共享非常基本的信息和命令的過程。無論包含應用程序正在運行與否,其都應保持穩(wěn)定,但只有在應用程序在后臺喚醒時,通知才會在包含應用程序中觸發(fā)。這使得MMWormhole非常適合包含應用程序已經(jīng)通過某種形式的后臺模式運行的情況。
MMWormhole使用NSKeyedArchiver作為序列化介質(zhì),因此任何與NSCoding兼容的對象都可以作為消息。對于許多應用程序而言,共享簡單的字符串,數(shù)字或JSON對象足以驅(qū)動Widget或Apple Watch應用程序的UI??梢暂p松地將消息作為存檔文件發(fā)送和保存,并在以后喚醒應用或擴展程序時閱讀。
示例:
[self.wormhole passMessageObject:@{@"buttonNumber" : @(1)} identifier:@"button"];
[self.wormhole listenForMessageWithIdentifier:@"button"
listener:^(id messageObject) {
self.numberLabel.text = [messageObject[@"buttonNumber"] stringValue];
}];
評論
圖片
表情
