Estou atualizando meu aplicativo iOS para substituir UIWebView
com WKWebView
. Porém, não entendo como conseguir o mesmo comportamento com WKWebView
. Com UIWebView
I costumava scalesPageToFit
garantir que a página da web fosse exibida com o mesmo tamanho da tela (de modo a aparecer em tela inteira sem rolar).
Encontrei essa solução na web, mas ela não funciona:
- (void)webView:(WKWebView *)webView didCommitNavigation:(WKNavigation *)navigation {
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];
}
NSString* js = @"var meta = document.createElement('meta'); " "meta.setAttribute( 'name', 'viewport' ); " "meta.setAttribute( 'content', 'width = device-width' ); " "document.getElementsByTagName('head')[0].appendChild(meta)"; [webView stringByEvaluatingJavaScriptFromString: js];
substitua seu código pelo código acima.Respostas:
você também pode tentar o WKUserScript.
aqui está minha configuração de trabalho:
você pode adicionar configuração adicional ao seu WKWebViewConfiguration.
fonte
WKUserScriptInjectionTimeAtDocumentEnd
paraWKUserScriptInjectionTimeAtDocumentStart
, não funcionará para mim. Não adiciona este script. qualquer razão?var style = document.createElement('style');style.innerHTML = 'body { -webkit-text-size-adjust: none; }';document.getElementsByTagName('head')[0].appendChild(style);
Eco da resposta de nferocious76, em código swift: versão Swift2.x
versão swift3
fonte
Semelhante a @ nferocious76, mas em linguagem Swift
fonte
Versão C #, para uso no Xamarin Custom Renderer:
fonte
WkWebViewRenderer
? PorqueControl
assim comoSetNativeControl()
são desconhecidos ...ViewRenderer<CustomWebView, WKWebView>
e usarOnElementChanged(ElementChangedEventArgs<CustomWebView> e)
.Eu descobri abaixo da alma. Para fazer com que o conteúdo se ajuste ao tamanho do dispositivo.
fonte
Adicionar o seguinte ao meu script HTML me ajudou.
Ele faz o mesmo que scalePageToFit em UIWebView.
consulte: Como definir a escala de zoom do iOS WkWebview
fonte
Solução Swift 5:
fonte
Este trabalho para mim, adicionei dois atributos no meta:,
initial-scale=1.0, shrink-to-fit=yes
que ajudam a ajustar o texto com html e ter uma imagem grande em html.fonte
// 100% trabalho para mim
fonte
Nenhuma dessas respostas estava funcionando para mim. Eu estava tentando abrir um URL da Amazon para um determinado artista. Acontece que a Amazon tem uma URL responsiva móvel e uma URL desktop. No Safari para desktop, mudei para o iPhone como user-agent (Develop> User Agent> Safari - iOS 13.1.3 - iPhone) e obtive o URL apropriado para celular.
fonte