WkWebView не позволяет увеличить какой-либо сайт после загрузки - PullRequest
1 голос
/ 11 марта 2019

Здесь я программно добавил свой WkWebView в основной вид, затем после того, как я добавил этого делегата для WkWebView

self.wkWebView.UIDelegate = self;
self.wkWebView.navigationDelegate = self;
wkWebView.scrollView.delegate = self;

, а затем загружал сайт по одному и проверял функцию масштабирования, это увеличение для какого-то сайта, а немасштабирование для другого веб-сайта

Если я загружаю http://www.google.com - тогда мне разрешено изменять масштаб, а если я загружаю https://www.42gears.com & https://www.facebook.com - тогда функция масштабирования запрещена (это масштабирование всего веб-сайта работает в сафари, но не работает в WKWebView)

Примечание: я проверяю в iPhone и работаю с Objective-C

Пожалуйста, помогите мне, заранее спасибо.

1 Ответ

1 голос
/ 14 марта 2019

Здесь я оцениваю Javascript для функциональности масштабирования, и здесь вам нужно добавить это в didFinishNavigation метод.поэтому, используя это, вы можете решить эту проблему.

bool isAllowZoom = false;

-(void)webView:(WKWebView *)webView didFinishNavigation:(WKNavigation *)navigation
{
   if(isAllowZoom){
        NSString *javascript = @"var meta = document.createElement('meta');meta.setAttribute('name', 'viewport');meta.setAttribute('content', 'width=device-width, initial-scale=1.0, maximum-scale=10.0, user-scalable=yes');document.getElementsByTagName('head')[0].appendChild(meta);";
       [webView evaluateJavaScript:javascript completionHandler:nil];
    }
    else
    {
        NSString *javascript = @"var meta = document.createElement('meta');meta.setAttribute('name', 'viewport');meta.setAttribute('content', 'width=device-width, initial-scale=1.0, maximum-scale=1.0, user-scalable=no');document.getElementsByTagName('head')[0].appendChild(meta);";
        [webView evaluateJavaScript:javascript completionHandler:nil];
    }
}

Спасибо, может быть, это поможет вам.

...