Я бы хотел использовать WKWebView на iOS, который всегда отображает текст с точным размером шрифта, который я указал, например, 12px.Но я не могу найти способ остановить его от масштабирования шрифтов на основе множества различных переменных, включая ориентацию устройства и содержимое в HTML.
Я пробовал много разных комбинаций параметров вHTML-тег «viewport», например, установка постоянной ширины и установка начальных, минимальных и максимальных масштабов для различных значений.Ничто из этого не мешает веб-представлению изменять шрифты контекстно-зависимыми способами.
Вот пример кода Swift, который иллюстрирует то, что я вижу:
import UIKit
import WebKit
class ViewController: UIViewController {
@IBOutlet var webView: WKWebView!
@IBOutlet var webView2: WKWebView!
override func viewDidLoad()
{
super.viewDidLoad()
let htmlFormatString = "<!DOCTYPE html><html><head><meta name=\"viewport\" content=\"initial-scale=1.0 minimum-scale=1.0, maximum-scale=1.0, user-scalable=no\"/><style type=\"text/css\">p {font-size: 12px;}</style></head><body>%(body)</body></html>"
let htmlTest1 = htmlFormatString.replacingOccurrences(of: "%(body)", with: "<p>Test paragraph 1.")
webView.loadHTMLString(htmlTest1, baseURL: URL(string: "http:"))
let htmlTest2 = htmlFormatString.replacingOccurrences(of: "%(body)", with: "<p>Test paragraph 1.<p>Test paragraph 2.")
webView2.loadHTMLString(htmlTest2, baseURL: URL(string: "http:"))
}
}
Я только что настроилраскадровка с двумя веб-представлениями, одно из которых ограничено верхней половиной представления, а другое ограничено нижней половиной.
Если вы запустите его на симуляторе в портретном режиме, содержимое в обоих дисплеях будет отображаться одинаковомасштаб.Но затем, если вы поворачиваете в альбомную ориентацию, шрифт нижнего веб-представления значительно больше, чем шрифт верхнего.Из экспериментов я определил, что шрифт становится больше, когда в HTML есть два тега «p».Когда есть только один «р», шрифт меньше.Я не понимаю, к чему это стремится, потому что, если что-то и есть, так как в нижнем веб-представлении больше текста, я бы ожидал, что его уменьшат.В любом случае, я не хочу, чтобы это масштабировалось вообще.Мой дизайнер попросил, чтобы он всегда рисовался с разрешением 12px, несмотря ни на что.
Вы можете увидеть это, даже если вы полностью удалите «голову» из HTML, поэтому у вас нет видового экрана или стиля.