2

我正在试验用于turbolinks 5的turbolinks-ios适配器。

为了有一些视图,例如一开始的欢迎视图,感觉更加原生,我想停用一些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
    }

    // ...
}

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

4

1 回答 1

4

The zooming can be disabled on the server side by setting user-scalable=no on the viewport meta tag:

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

As this stackoverflow answer suggested:

user-scalable=no ... You use it if you want your web app to feel more like a native app (in terms of zooming).

There has been some discussion that this would no longer be possible in iOS 10. But according to the release nots of iOS10 beta 6, this is now opt-in:

Safari

  • WKWebView now defaults to respecting user-scalable=no from a viewport. Clients of WKWebView can improve accessibility and allow users to pinch-to-zoom on all pages by setting the WKWebViewConfiguration property ignoresViewportScaleLimits to YES.
于 2016-08-19T19:58:52.227 回答