Akai Rika
Akai Rika

Reputation: 59

Xamarin.forms:WebView scale did not wwork

In my app there is a webview .I have set the scale in iOS custom renderer.I can zoom the webview before it finishload.But it doen't when it finishload.

in webview renderer

WebView.LoadFinished += LoadFinished;

//...

private void LoadFinished(object sender, EventArgs e)
{
    var contentSize = WebView.ScrollView.ContentSize;
    var viewSize = View.Bounds.Size;
    var scale = viewSize.Width / contentSize.Width;

    WebView.ScrollView.MinimumZoomScale = scale*0.5 ;
    WebView.ScrollView.MaximumZoomScale = scale*2 ;
}

Any suggetions?

Upvotes: 2

Views: 339

Answers (1)

Lucas Zhang
Lucas Zhang

Reputation: 18861

Cause:

Because you didn't refer to the tag meta in your html file.

Solution:

Add the following code in the method LoadFinished

private void LoadFinished(object sender, EventArgs e)
{
    //. . .

    NSString str = new NSString("var meta = document.createElement('meta');meta.content='width=device-width,initial-scale=1.0,minimum-scale=0.5,maximum-scale=2.0';meta.name='viewport';document.getElementsByTagName('head')[0].appendChild(meta);");
    webView.EvaluateJavascript(str); 
}

minimum-scale=0.5,maximum-scale=2.0

You can set the value of MinimumZoomScale and MaximumZoomScale here.

Upvotes: 1

Related Questions