Как отключить Центр уведомлений iOS в приложении?

Если у вас есть полноэкранное приложение iOS, и вы хотите, чтобы центр уведомлений не был снят, можете ли вы и как?

также вы можете блокировать уведомления или баннеры от отображения во время загрузки приложения? (Я думаю, что это не так, но хотел спросить на всякий случай.)

3 ответов


Это был мой опыт, что полноэкранные приложения (statusBarHidden = YES) имеют немного другое поведение центра уведомлений по умолчанию: прокрутка вниз по области, ранее занятой в строке состояния, покажет только небольшую вкладку. Только проводя по вкладке будет отображаться Центр уведомлений. Этого было достаточно, чтобы предотвратить случайную активацию для меня до сих пор.

В настоящее время нет открытого API для управления поведением центра уведомлений. Я считаю, что это маловероятно, что приложение будет когда-нибудь быть в состоянии заблокировать внешний вид уведомления, и только немного менее маловероятно, что приложение будет в состоянии предотвратить Центр уведомлений от появления. iOS - это последовательный пользовательский опыт по цене свободы разработчика. Я мог видеть, что разочарован такой функциональностью, если бы я был неожиданным пользователем.

все, что сказано, всегда есть темная сторона недокументированных APIs. Я не удивлюсь, если вы могли бы проявить некоторую сообразительность, используя их на взломанном устройстве, но это не моя чашка чая.


Я только что понял это. Я разрабатываю игру, которая работает в ландшафте, и всякий раз, когда я коснулся левой стороны, появится вкладка центра уведомлений. Чтобы исправить это, вы хотите добавить следующее:

setStatusBarOrientation:UIInterfaceOrientationLandscapeLeft

Я добавил Это сразу после того, как я setStatusBarHidden, и у меня больше нет проблемы с вкладкой уведомлений.

надеюсь, что это поможет.


Я построил очень простой фрагмент кода для решения этой проблемы программно. У меня есть таймер в делегате приложения, который работает каждый .2 секунды каждый раз, когда он запускается, он продолжает перемещать ориентацию строки состояния, чтобы она не влияла на игру. С тех пор я не испытывал раздражающий Центр уведомлений в своем приложении! Единственная проблема-регулятор громкости постоянно вращается и может раздражать, но это менее раздражает, чем центр уведомлений

int tick=0;

-(void)toggleNC
{
     [[UIApplication sharedApplication] setStatusBarHidden:YES]; 
    tick++;
    if (tick==1)
    {
     [[UIApplication sharedApplication]   setStatusBarOrientation:UIInterfaceOrientationLandscapeLeft];
    }
    if (tick==2){
         [[UIApplication sharedApplication]     setStatusBarOrientation:UIInterfaceOrientationLandscapeRight];
    }
    if (tick==3){
      [[UIApplication sharedApplication] setStatusBarOrientation:UIInterfaceOrientationPortrait];
   }
    if (tick==4){
        [[UIApplication sharedApplication] setStatusBarOrientation:UIInterfaceOrientationPortraitUpsideDown];
        tick=0;

    }
}