как опубликовать уведомление в Logos Tweak

Я использовал iOSOpenDev для создания Logos Tweak, чтобы подключить 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 не отображается. Кто может сказать мне, почему?


person Piosa    schedule 05.09.2012    source источник


Ответы (2)


Чтобы уведомления работали между приложениями:

CFNotificationCenterAddObserver(CFNotificationCenterGetDarwinNotifyCenter(), 
                                NULL, 
                                doingSMS,
                                CFSTR("com.your.company.SMSComing"), 
                                NULL, 
                                CFNotificationSuspensionBehaviorCoalesce);

а потом

CFNotificationCenterPostNotification(CFNotificationCenterGetDarwinNotifyCenter(), 
                                     CFSTR("com.your.company.SMSComing"), 
                                     NULL, 
                                     NULL, 
                                     TRUE);

Обратите внимание, что имя уведомления, такое как "SMSComing" (без префикса), может вызвать проблемы.

person Community    schedule 21.12.2012

У меня были проблемы с тем, что UIAlertViews не появлялись в настройке, над которой я работал с iOSOpenDev.
Я понял, что мне нужно установить делегат UIAlertView на self. По какой-то причине, которую я не понимаю, когда у меня был делегат, установленный как nil, UIAlertView не отображался.

person Ponyboy47    schedule 12.01.2013