web-dev-qa-db-fra.com

Supprimez WKWebView de la mise à l'échelle du contenu pour effectuer le rendu avec le même agrandissement qu'UIWebView.

Problème

En utilisant WKWebView à la place de UIWebView, j'ai remarqué que le contenu de WKWebView était massivement réduit par rapport à mon UIWebView. J'aimerais que WKWebView arrête de faire ça, et respecte juste mes valeurs CSS littéralement, comme le ferait UIWebView.

Le contexte

J'utilise des vues Web dans mon application iOS native pour le contenu qui se trouve à l'intérieur des fenêtres contextuelles sur un iPad où j'affiche du contenu informatif. C'est génial de pouvoir donner cela aux gens du contenu et de la conception et de dire "il suffit de déposer du contenu HTML en référençant le fichier CSS lié".

Tout cela a très bien fonctionné lorsque vous utilisez UIWebView.

Mais les popovers sont souvent assez compacts.

Ce que je vis

Dans mes popovers étroits, le contenu est réduit comme si mon contenu contenait une page Web entière miniaturisée pour s'adapter. Je peux voir que WKWebView était principalement destiné aux gens qui construisent des navigateurs alternatifs sur iOS ou qui créent des applications hybrides, où le WKWebView est essentiellement, prenant le contrôle de l'écran.

Le facteur d'agrandissement dans WKWebView n'est pas quelque chose que l'on peut définir. Bien sûr, l'utilisateur peut zoomer, mais cela va à l'encontre du but. Je ne cherche pas une fenêtre agrandie; Je recherche l'intégralité du contenu à adapter et Word-wrap comme il le ferait avec UIWebView.

Avec WKWebView, dans le simulateur, je verrai le dimensionnement que je veux si je monte la taille du texte de mon corps à 50 pixels au lieu de 14 pixels. Cependant, ce code n'aide même pas sur l'appareil, donc gonfler mes tailles CSS n'est pas une option non plus!

Qu'est-ce qui ne va pas avec UIWebView?

Eh bien, rien de bien. Ce n'est pas (encore) obsolète dans iOS8, peut-être qu'en raison de son utilité, comme je le vis. J'ai cependant remarqué que WKWebView était rapide. Et j'ai vu des spéculations que l'écriture est sur le mur pour UIWebView. J'ai pensé: "Pourquoi ne pas adopter maintenant l'API la plus moderne dans iOS8?"

Donc, je continue à utiliser UIWebView pour l'instant, mais j'aimerais passer à WKWebView si je pouvais le faire respecter mon dimensionnement CSS.

Voici mon CSS d'origine que UIWebView rend bien, mais que WKWebView dans un popover rendra dans de très petites polices:

body {
    font-family: "HelveticaNeue";
    font-size: 15px;
    line-height: 17px;
    color: #000000;
}

h1 {
    font-family: "HelveticaNeue-Bold";
    font-size: 18px;
    line-height: 20px;
    color: #000000;
}


h2 {
    font-family: "HelveticaNeue-Bold";
    font-size: 16px;
    line-height: 18px;
    color: #000000;
}
63
idStar

J'ai eu le même problème. Je devais juste mettre

<meta name="viewport" content="initial-scale=1.0" />

dans mon bloc d'en-tête et cela l'a résolu pour moi. Il semble que WKWebView se comporte plus comme Mobile Safari qu'un UIWebView, vous devez donc définir la fenêtre d'affichage si vous souhaitez contrôler la mise à l'échelle ou le dimensionnement général.

141
Craig Pearlman