Tweak和app交互方案【进程通信】
浏览数:105 /
时间:2015年06月11日
Core Foundation DEMO: Tweak端:
- CFNotificationCenterAddObserver(CFNotificationCenterGetDarwinNotifyCenter(),
- NULL,
- &NotificationReceivedCallback,
- CFSTR("com.chinapyg.fakecarrier-change"),
- NULL,
- CFNotificationSuspensionBehaviorCoalesce);
- 回调:
- static void NotificationReceivedCallback(CFNotificationCenterRef center,
- void *observer, CFStringRef name,
- const void *object, CFDictionaryRef
- userInfo)
- {
- //.... 可以根据 name来判断是何种消息,下面的客户端传了NULL,所以无需判断了,在多种消息的时候需要用到
- }
复制代码
APP端: 1.一句代码即可
- notify_post("com.chinapyg.fakecarrier-change");
复制代码
2.复杂点的
- CFStringRef observedObject =
- CFSTR("com.chinapyg.fakecarrier-change");
- CFNotificationCenterRef center =
- CFNotificationCenterGetDistributedCenter();
- CFNotificationCenterPostNotification(center, NULL,
- observedObject, NULL /* no dictionary */, TRUE);
复制代码
/////////////////////////////////////////////////////////////////////////////////////////// 华丽的分割线 /////////////////////////////////////////////////////////////////////////////////////////// Cocoa DEMO:
接收端(后台):
- NSString *observedObject = @"com.chinapyg.notification";
- // 处理单个计算机上不同的进程之间的通知
- NSDistributedNotificationCenter *center =
- [NSDistributedNotificationCenter defaultCenter];
- [center addObserver: self
- selector: @selector(callbackWithNotification:)
- name: @"PiaoYun Notification"
- object: observedObject];
- 回调:
- - (void)callbackWithNotification:(NSNotification *)myNotification;
- {
- NSLog(@"Notification Received");
- }
复制代码
发送端(app):
- NSString *observedObject = @"com.mycompany.notification";
- NSDistributedNotificationCenter *center =
- [NSDistributedNotificationCenter defaultCenter];
- [center postNotificationName: @"PiaoYun Notification"
- object: observedObject
- userInfo: nil /* no dictionary */
- deliverImmediately: YES];
复制代码
iOS上层接口:
- // 处理单进程之间的通知
- [[NSNotificationCenter defaultCenter] addObserver: self selector: @selector(callBack) name: @"back" object: nil];
- // 回调
- - (void)callBack
- {
- NSLog(@"Notification Received");
- }
- //发出通知
- [[NSNotificationCenter defaultCenter] postNotificationName:@"back" object:self];
复制代码
|
郑重声明:本站内容如果来自互联网及其他传播媒体,其版权均属原媒体及文章作者所有。转载目的在于传递更多信息及用于网络分享,并不代表本站赞同其观点和对其真实性负责,也不构成任何其他建议。