2015-09-19 1 views
3

iOS9 открыть другое приложение по urlSchemes, сначала появится предупреждение alert.How, чтобы получить callBack, когда нажмите кнопку отмены.iOS9 открыть другое приложение сначала всплывающее alertView, получить кнопку отмены callBack

[[UIApplication sharedApplication] openURL:[NSURL URLWithString:@"app://"]];

http://i.stack.imgur.com/L1t0b.png

+0

Пожалуйста, добавьте код – Nishant

+0

У меня есть обновленный код и снимок экрана.TKS – Alan

ответ

0

Как @Alan отметил себя следующие UIApplicationDelegate методы могут быть использованы для определения статы openURLUIAlertView:

  • вид оповещения показано: applicationWillResignActive
  • Пользователь выбирает открытый URL, и это приводит к фактическому переключения приложений: applicationDidEnterBackground
  • вид оповещения отменяется или приложение переключается обратно: is-processing-app-switching будет называться

I предположим, что флаг, подобный «is-processing-app-switching» на основе NSUserDefaults, может быть установлен в true перед вызовом openURL, а когда это верно, applicationDidEnterBackground может использоваться для определения того, выбирает пользователь отмену или нет. В поле is-processing-app-switching флаг должен иметь значение false. Этот обходной путь кажется уродливым для меня, но когда вы действительно хотите определить статистику сборки в UIAlertView, по крайней мере выполнимо.

Благодарим плакат за то, что вы сами решили решить проблему.

0

Используйте этот метод, чтобы подтвердить перед выполнением действия:

- (void)openAppAfterConfirmation 
{ 
    UIAlertController *alert = [UIAlertController alertControllerWithTitle:@"Open App?" 
                    message:@"OK to open app, Cancel to " 
                  preferredStyle:UIAlertControllerStyleAlert]; 

    UIAlertAction *cancel = [UIAlertAction actionWithTitle:@"Cancel" 
                style:UIAlertActionStyleCancel 
                handler:^(UIAlertAction * _Nonnull action) { 

                 //do the CANCEL stuff here 
                }]; 

    UIAlertAction *confirm = [UIAlertAction actionWithTitle:@"Confirm" 
                 style:UIAlertActionStyleDefault 
                handler:^(UIAlertAction * _Nonnull action) { 

                 //do the CONFIRM stuff here 
                 [[UIApplication sharedApplication] openURL:[NSURL URLWithString:@"app://"]]; 
                }]; 

    [alert addAction:cancel]; 
    [alert addAction:confirm]; 

    [self presentViewController:alert animated:YES completion:nil]; 
} 
+0

Я не имею в виду это. [[UIApplication sharedApplication] openURL: [NSURL URLWithString: @ "app: //"]] появится подтвердить alertView auto системой iOS9. Я не могу получить alertView. – Alan

+0

В чем проблема? Все будет работать в соответствии с iOS 9 по умолчанию – Nishant

+0

Когда вы вызываете методы OpenURL, alertView всплывает по умолчанию iOS9. Мне нужна кнопка отмены, нажата callBack. – Alan

Смежные вопросы