方式一
Makefile:
myTweak_LIBRARIES = rocketbootstrap
Example usage (server inside a SpringBoard tweak):
#import "rocketbootstrap.h"
CPDistributedMessagingCenter *c = [CPDistributedMessagingCenter centerNamed:@"com.mycompany.myCenter"];
// apply rocketbootstrap regardless of iOS version (via rpetrich)
rocketbootstrap_distributedmessagingcenter_apply(c);
[c runServerOnCurrentThread];
[c registerForMessageName:@"myMessageName" target:myTarget selector:@selector(handleMessageNamed:withUserInfo:)];
Example usage (client from sandboxed app):
#import "rocketbootstrap.h"
CPDistributedMessagingCenter *c = [%c(CPDistributedMessagingCenter) centerNamed:@"com.mycompany.myCenter"];
rocketbootstrap_distributedmessagingcenter_apply(c);
[c sendMessageName:@"myMessageName" userInfo:nil]; //send an NSDictionary here to pass data
http://iphonedevwiki.net/index.php/Updating_extensions_for_iOS_7#Inter-process_communication
static void sysNotification(CFNotificationCenterRef center,
void *observer,
CFStringRef name,
constvoid *object,
CFDictionaryRef userInfo)
{
}
%hook SpringBoard
-(void)applicationDidFinishLaunching:(id)application
{
//屏幕锁定通知处理
CFNotificationCenterAddObserver(
CFNotificationCenterGetDarwinNotifyCenter(),//Notification Center
NULL,//observer
&sysNotification, //callback
CFSTR("com.apple.springboard.god.event"),//event name
NULL,//object
CFNotificationSuspensionBehaviorDeliverImmediately
);
%orig;
}
%end
%end
CFNotificationCenterPostNotification(CFNotificationCenterGetDarwinNotifyCenter(),
CFSTR("com.apple.springboard.god.event"),
NULL,
NULL,
TRUE);