Как отключить масштабирование для UIWebView в turbolinks-ios?

Я экспериментирую с адаптером turbolinks-ios для turbolinks 5.

Чтобы иметь представление, например, приветствие в самом начале, чувствовать себя еще более нативно, я бы хотел отключить некоторые UIWebView такие функции, как масштабирование или выбор текста.

Как я могу отключить эти функции на UIWebView пример?

Демо-приложение

Turbolinks для iOS имеет демонстрационное приложение, которое может служить примером контекста, если это облегчает ответ на вопрос.

Демо-приложение можно найти здесь: https://github.com/turbolinks/turbolinks-ios/tree/master/TurbolinksDemo

Не работает: настройка maximumZoomScale

Документация для UIScrollView"s maximumZoomScale гласит:

maximumZoomScale: значение с плавающей запятой, которое указывает максимальный масштабный коэффициент, который может быть применен к содержимому представления прокрутки. Это значение определяет, насколько большой контент может быть масштабирован. Он должен быть больше минимального масштаба масштабирования, чтобы масштабирование было включено. Значением по умолчанию является 1,0.

Таким образом, в контроллере представления я попытался установить свойство:

// DemoViewController.swift
class DemoViewController: Turbolinks.VisitableViewController {

    override func viewDidLoad() {
        super.viewDidLoad()
        visitableView.webView?.scrollView.maximumZoomScale = 1.0
        visitableView.webView?.scrollView.minimumZoomScale = 1.0
    }

    // ...
}

Но, к сожалению, это не имеет никакого эффекта.

1 ответ

Решение

Масштабирование можно отключить на стороне сервера, установив user-scalable=no в метатеге viewport:

<head>
  <meta name="viewport" content="width=device-width, user-scalable=no" />
</head>

В ответе на этот стек:

user-scalable = no... Вы используете его, если хотите, чтобы ваше веб-приложение больше походило на нативное (с точки зрения масштабирования).

Было некоторое обсуждение, что это больше не было бы возможно в iOS 10. Но согласно выпускным версиям iOS10 бета 6, это теперь является обязательным:

Сафари

  • WKWebView теперь по умолчанию уважать user-scalable=no из окна просмотра. Клиенты WKWebView может улучшить доступность и позволить пользователям увеличивать масштаб на всех страницах, устанавливая WKWebViewConfiguration имущество ignoresViewportScaleLimits в YES,
Другие вопросы по тегам