tuve este problema a mí mismo, y quería tanto ser capaz de establecer el ancho, y tienen que actualizar en rotación y permitir al usuario a escala y zoom de la página (la corriente la respuesta proporciona la primera, pero previene la posterior como un efecto secundario) ... así que se me ocurrió una solución que mantiene el ancho de la vista correcto para la orientación, pero aún permite el acercamiento, aunque no es súper directo.
En primer lugar, añadir el siguiente JavaScript a la página web que está visualizando:
<script type='text/javascript'>
function setViewPortWidth(width) {
var metatags = document.getElementsByTagName('meta');
for(cnt = 0; cnt < metatags.length; cnt++) {
var element = metatags[cnt];
if(element.getAttribute('name') == 'viewport') {
element.setAttribute('content','width = '+width+'; maximum-scale = 5; user-scalable = yes');
document.body.style['max-width'] = width+'px';
}
}
}
</script>
Luego, en su - (void) didRotateFromInterfaceOrientation: Método fromInterfaceOrientation (UIInterfaceOrientation), añadir:
float availableWidth = [EmailVC webViewWidth];
NSString *stringJS;
stringJS = [NSString stringWithFormat:@"document.body.offsetWidth"];
float documentWidth = [[_webView stringByEvaluatingJavaScriptFromString:stringJS] floatValue];
if(documentWidth > availableWidth) return; // Don't perform if the document width is larger then available (allow auto-scale)
// Function setViewPortWidth defined in EmailBodyProtocolHandler prepend
stringJS = [NSString stringWithFormat:@"setViewPortWidth(%f);",availableWidth];
[_webView stringByEvaluatingJavaScriptFromString:stringJS];
ajustes adicionales se puede hacer mediante la modificación de varias de las configuraciones de contenido viewportal:
http://www.htmlgoodies.com/beyond/webmaster/toolbox/article.php/3889591/Detect-and-Set-the-iPhone--iPads-Viewport-Orientation-Using-JavaScript-CSS-and-Meta-Tags.htm
Además, entiendo que puede poner un oyente JS para onresize o algo así como para desencadenar el cambio de escala, pero esto funcionó para mí, ya que estoy haciendo desde marcos de interfaz de usuario Cocoa Touch.
Espero que esto ayude a alguien :)
Buena lectura sobre él aquí - https://developer.mozilla.org/en-US/docs/Mobile/Viewport_meta_tag# Viewport_width_and_screen_width – vsync
Solo una nota --- el separador de pares de claves debe ser ',' not ';' --- da un error de análisis en Google Chrome ('Error al analizar el contenido de un elemento meta: ';' no es una clave-valor válida separador de pares. Utilice ',' en su lugar.) – Bill