Обновление iOS 12.2 остановило WebView от открытия ссылок в новом окне браузера - PullRequest
1 голос
/ 19 апреля 2019

Недавнее обновление 12.2 остановило работу некоторых функций в нашем WebView, как ни странно, только на реальных устройствах - оно отлично работает в симуляторах. При щелчке ссылки в веб-просмотре некоторый код определяет, должна ли ссылка открываться в веб-обзоре или открывать новое окно браузера. Ссылки являются стандартными ссылками href с target="_blank". Код для определения, открывать ли новое окно браузера или нет, выглядит следующим образом:

#pragma UIWebView delegate
- (BOOL) webView:(UIWebView *)inWeb shouldStartLoadWithRequest:(NSURLRequest *)inRequest   navigationType:(UIWebViewNavigationType)inType
{
    BOOL shouldOpenBrowser = NO;
    if ((inRequest.URL.absoluteString.length > 0) && (![inRequest.URL.absoluteString isEqualToString:@"about:blank"])) {

        self.strUrl = [NSString stringWithFormat:@"%@", [inRequest URL]];

        if ([inRequest.URL.absoluteString containsString:@"google.com/recaptcha"]) {
            shouldOpenBrowser = NO;
        } else if (![inRequest.URL.host hasSuffix:@"mywebviewdomain.com"]) {
            shouldOpenBrowser = YES;
        } else {
            NSString *strMatchedUrl = [NSString stringWithFormat:@"https://mywebviewdomain.com/link/%@/%@/%@",self.var1, self.var2,self.var3];
            if (![inRequest.URL.absoluteString containsString:strMatchedUrl]) {
                shouldOpenBrowser = NO;
            } else {
                shouldOpenBrowser = YES;
            }
        }
    }else if([inRequest.URL.absoluteString hasPrefix:@"newtab:"])
             {

                 NSURL *url = [NSURL URLWithString:[inRequest.URL.absoluteString substringFromIndex:7]];
                 [[UIApplication sharedApplication] openURL:url];

                 return true;
             }

    if (shouldOpenBrowser == YES) {
         [[UIApplication sharedApplication] openURL:[inRequest URL]];
        return NO;
    }

    return YES;
}

Как видите, все ссылки, которые не ведут на mywebviewdomain.com, должны открывать новое окно браузера. На реальных устройствах ничего не происходит при нажатии на ссылки. Отлично работает в симуляторах iOS 12.2.

В чем здесь проблема? И есть ли какое-нибудь решение, которое я могу сделать на веб-странице, чтобы избежать необходимости обновлять приложение?

...