почему кнопка отмены в веб-представлении не работает при открытии URL iTunes App Store. (для понимания) - PullRequest
0 голосов
/ 30 января 2020

Это потому, что метод кнопки отмены не реализован?

обведено синим цветом, кнопка отмены не работает

Ниже приведен мой код. Где пользователь уведомлен через представление предупреждения, что обновленная версия доступна. Если щелкнуть ОК, он перенаправит их в приложение в iTunes App Store. (как показано на пи c ниже) Однако при нажатии кнопки отмены ничего не происходит.

-(void)showAlert {

    UIAlertController *alert = [UIAlertController alertControllerWithTitle:@"New Version Available on Appstore" message:@"Please update app to continue" preferredStyle:UIAlertControllerStyleAlert];

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

        UIApplication *application = [UIApplication sharedApplication];
        NSURL *iTunesLink = [NSURL URLWithString:@"itms://itunes.apple.com/us/app/apple-store/id375380948?mt=8"];
        [application openURL:iTunesLink options:@{} completionHandler:^(BOOL success) {
            if (success) {
                 NSLog(@"Opened url");
            }
        }];
            //button click event
                        }];
    UIAlertAction *cancel = [UIAlertAction actionWithTitle:@"Cancel" style:UIAlertActionStyleCancel handler:nil];
    [alert addAction:ok];
    [alert addAction:cancel];
    [self presentViewController:alert animated:YES completion:nil];
}

Мне удается решить эту проблему, добавив «itms-apps» (сразу же перенаправляется в appstore без кнопки отмены). Но я все еще хотел бы понять, почему кнопка отмены не работает

Поскольку кнопка отмены в веб-представлении не создана мной, возможно ли добавить метод к этому?

Мои извинения за то, что не были ясны в моем вопросе. Я хотел бы знать, почему кнопка отмены в кружке на скриншоте не работает.

1 Ответ

0 голосов
/ 30 января 2020

Когда вы создаете UIAlertController, вы можете добавить к нему различные кнопки в качестве UIAlertActions, которые будут делать что-то, когда каждая из них будет нажата. Вам нужно будет указать, что именно должно произойти, внедрив обработчик в инициализацию UIAlertAction (как вы делали выше для действия OK).

Если вы передадите nil в качестве обработчика, предупреждение просто будет отклонено. , но больше ничего не произойдет, потому что вы не сказали ему делать что-либо еще.

Кнопка отмены связана с нажатием на кнопку оповещения, а не с тем, что вы делаете после нажатия другой кнопки, как, возможно, Вы хотели бы в вашем случае.

Подробнее здесь .

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...