Как разместить уведомление в логотипах твика
Я использовал iOSOpenDev для создания твика логотипов, чтобы подключить acknowledgeIncomingMessageWithId:
из CTMessageCenter
и я хочу отправить уведомление по NSNotificationCenter
в другое приложение, но это не работает. Я думаю, что NSNotificationCenter
может работать между разными приложениями. Я пытался проверить NSNotificationCenter
в первую очередь. Вот что я сделал ниже:
%hook CTMessageCenter
-(void)acknowledgeIncomingMessageWithId:(unsigned int)anId {
[[NSNotificationCenter defaultCenter] addObserver:self
selector:@selector(doingSMS)
name:@"SMSComing"
object:nil];
[[NSNotificationCenter defaultCenter] postNotificationName:@"SMSComing" object:nil];
}
%orig;
}
- (void)doingSMS{
UIAlertView *alert = [[UIAlertView alloc] initWithTitle:@"短信消息传送成功"
message:@"来短信啦"
delegate:nil
cancelButtonTitle:@"Good"
otherButtonTitles:nil];
[alert show];
[alert release];
}
%end
Но это не работает. Кроме того, UIAlertView не появляется. Кто может сказать мне, почему?
2 ответа
Чтобы уведомления работали между приложениями:
CFNotificationCenterAddObserver(CFNotificationCenterGetDarwinNotifyCenter(),
NULL,
doingSMS,
CFSTR("com.your.company.SMSComing"),
NULL,
CFNotificationSuspensionBehaviorCoalesce);
а потом
CFNotificationCenterPostNotification(CFNotificationCenterGetDarwinNotifyCenter(),
CFSTR("com.your.company.SMSComing"),
NULL,
NULL,
TRUE);
Обратите внимание, что имя уведомления, как "SMSComing"
(без префикса) подвержен проблемам.
У меня были проблемы с UIAlertViews, не появляющимися в твике, над которым я работал с iOSOpenDev.
Я понял, что должен был установить делегат UIAlertView на self
, По какой-то причине я не понимаю, когда у меня был установлен делегат nil
UIAlertView не появится.