如何在turbolinks-ios中禁用UIWebView的缩放?

时间:2016-08-12 23:18:56

标签: ios uiwebview turbolinks turbolinks-ios

我正在试验turbolinks-iosturbolinks 5适配器。

为了获得一些视图,例如开头的欢迎视图,感觉更加原生,我想停用一些UIWebView功能,例如缩放或选择文字。

如何在UIWebView实例上停用这些功能?

演示应用程序

适用于iOS的Turbolinks有一个演示应用程序可以作为示例上下文,如果这样可以更容易回答这个问题。

可在此处找到演示应用: https://github.com/turbolinks/turbolinks-ios/tree/master/TurbolinksDemo

不工作:设置maximumZoomScale

UIScrollView maximumZoomScale的文档内容为:

  

maximumZoomScale :一个浮点值,指定可应用于滚动视图内容的最大比例因子。   此值确定可以缩放内容的大小。它必须大于启用缩放的最小缩放比例。默认值为1.0。

因此,在视图控制器中,我尝试设置属性:

// DemoViewController.swift
class DemoViewController: Turbolinks.VisitableViewController {

    override func viewDidLoad() {
        super.viewDidLoad()
        visitableView.webView?.scrollView.maximumZoomScale = 1.0
        visitableView.webView?.scrollView.minimumZoomScale = 1.0
    }

    // ...
}

但不幸的是,这没有效果。

1 个答案:

答案 0 :(得分:4)

通过在视口元标记上设置user-scalable=no,可以在服务器端禁用缩放:

<head>
  <meta name="viewport" content="width=device-width, user-scalable=no" />
</head>

正如this stackoverflow answer建议:

  

user-scalable = no ...如果您希望自己的网络应用感觉更像本机应用(在缩放方面),则可以使用它。

在iOS 10中已经有some discussion这种情况不再可能了。但根据release nots of iOS10 beta 6,现在可以选择加入:

  

<强> Safari浏览器

     
      
  • WKWebView现在默认尊重视口中的user-scalable=noWKWebView的客户可以通过将WKWebViewConfiguration属性ignoresViewportScaleLimits设置为YES来提高可访问性并允许用户对所有网页进行缩放缩放。
  •