2016-08-31 9 views
0

Я смотрю вокруг, как сумасшедшие. Мне нужно сделать индивидуальные действия на кнопке громкости и короткое нажатие (например, snapchat, короткое нажатие на изображение, длительное нажатие на запись), но не удалось.Обнаружение длинного и короткого нажатия кнопки регулировки громкости - iOS

Я использовал https://github.com/jpsim/JPSVolumeButtonHandler , который позволил мне обнаружить кнопку нажатия кнопки регулировки громкости. но, пытаясь очень сильно, я не смог обнаружить, когда его долгое нажатие и короткое нажатие.

также относятся к Detect iPhone Volume Button Hold? (iOS 8)

мой код

//Volume button handler 

self.volumeButtonHandler = [JPSVolumeButtonHandler volumeButtonHandlerWithUpBlock:^{ 
     // Volume Up Button Pressed 
     [self onVolumeUp]; 
    } downBlock:^{ 
     // Volume Down Button Pressed 
    }]; 

-(void)onVolumeUp { 
    if(self.volButtonTimer) { 
     secondsElapsed = 1; //To detect long press 
     [self.volButtonTimer invalidate]; 
    } 
    self.volButtonTimer = [NSTimer scheduledTimerWithTimeInterval:0.5 
                target:self 
               selector:@selector(onTimerFire) 
               userInfo:nil 
               repeats:NO]; 

} 

-(void)onTimerFire { 
    NSLog(@"Long Press %d",secondsElapsed); 
    if (secondsElapsed > 1) 
    { 
     //Do Something 
    } 
    else secondsElapsed = 0; 

} 

Пожалуйста, мне нужна помощь по этому вопросу. Поиск по всему Google, но не удалось. Если snapchat делает это, значит, это выполнимо.

Спасибо

ответ

0

Я столкнулся с той же проблемой прямо сейчас. Я смог узнать, что Apple отклонит ваше приложение, если оно изменит некоторые основные функциональные возможности аппаратного обеспечения. См. Эту ссылку: https://developer.apple.com/app-store/review/guidelines/. С другой стороны, это вводит в заблуждение, так как в App Store есть много приложений для камер, таких как Snapchat, которые явно используют кнопки громкости/долгое нажатие для других целей.

В любом случае, мне удалось справиться длительное нажатие, см эту тему: https://github.com/jpsim/JPSVolumeButtonHandler/issues/27#issuecomment-253979943

+0

Ааа, эти Snapchat - правило выключатели! –

+0

Я нашел решение, см. Мой отредактированный ответ. – Timo

+0

Да, мы также реализовали такую ​​функцию, но с методом dispatch_after(). Его мое личное нытье, потому что мы делаем Snapchat, как приложение. Нужно собирать голоса для запрета Snapchat на appstore) –