Как определить, что я на начальной странице webView? - PullRequest
0 голосов
/ 10 февраля 2020

У меня есть webView в моем приложении, которое работает хорошо. Чтобы разрешить пользователю go вернуться к предыдущему url link, у меня в моем navigationBar есть пользовательский ответ button. С этим button связана простая строка кода, которая возвращает пользователя к предыдущему экрану:

-(void)webBackButton {
    NSLog(@"BACK BACK BACK");
    [_webView goBack];
}

Отлично работает. Теперь реальная проблема заключается в том, что в начальном webView явно не должно быть спины button (назад к go нет места). Итак, я хотел бы скрыть и отключить button на первом показанном webView. Чтобы это произошло, я думаю, мне нужно как-то проверить, что текущий webView не является исходным webView. Например:

if(!_webView.URL.absoluteURL) {
    self.navigationItem.leftBarButtonItem = [[UIBarButtonItem alloc] initWithTitle:@"Back" style:UIBarButtonItemStylePlain target:self action:@selector(webBackButton)];
}

И я полагаю, что эту проверку необходимо выполнять каждый раз, когда кнопка «webView» 1019 * url path; that is when the user uses a link . If the current webView is _webView.URL.absoluteURL the back `должно быть скрыто, иначе должно быть показано.

Как мне сделать sh это. Насколько я понимаю, delegate webViewDidFinishLoad устарела. Я пытался использовать observeValueForKeyPath, но, кажется, он не срабатывает, когда я go на другой url. Есть ли более простой способ скрыть спину button на начальном экране?

1 Ответ

1 голос
/ 10 февраля 2020

UIWebview Class

open var canGoBack: Bool { get }

WKWebView Class

/** @abstract A Boolean value indicating whether there is a back item in
 the back-forward list that can be navigated to.
 @discussion @link WKWebView @/link is key-value observing (KVO) compliant
 for this property.
 @seealso backForwardList.
 */
open var canGoBack: Bool { get }

Добавить проверку на метод webBackButton:

if([self.webView canGoBack]) {
    [backBtn setEnabled:YES];
} else {
    [backBtn setEnabled:NO];
}

Извините за смешение Swift & Цель C, псевдокод остается прежним.

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