在 iOS 10 上的 WKWebView 中打开 PDF 文件时启用捏合缩放手势

Posted

技术标签:

【中文标题】在 iOS 10 上的 WKWebView 中打开 PDF 文件时启用捏合缩放手势【英文标题】:Enable Pinch to Zoom gesture when open PDF file in WKWebView on iOS 10 【发布时间】:2019-02-21 23:17:01 【问题描述】:

我正在寻找一种方法来在 ios 10 上的 WKWebview 中打开本地 PDF 文件时启用“双指缩放”放大手势。据我所知,iOS 12 上启用了双指缩放

class ViewController: UIViewController 
   var wkWebView: WKWebView?
   @IBOutlet var webView: UIView!
   fileprivate var delegate = AuthenticatedWebViewNavigationDelegate()

   override func viewDidLoad() 
     super.viewDidLoad()

     if wkWebView == nil 
        createWebView()
     
     let filePath = Bundle.main.path(forResource: "local", ofType: 
      "pdf")
     let baseUrl = URL(fileURLWithPath: filePath!)
     wkWebView?.loadFileURL(baseUrl, allowingReadAccessTo: baseUrl)

   


class AuthenticatedWebViewNavigationDelegate: NSObject, WKNavigationDelegate 
    weak var viewController: ViewController?

    public func webView(_ webView: WKWebView, decidePolicyFor navigationAction: WKNavigationAction, decisionHandler: @escaping (WKNavigationActionPolicy) -> Void) 
            decisionHandler(.allow)
       

    public func webView(_ webView: WKWebView, decidePolicyFor navigationResponse: WKNavigationResponse, decisionHandler: @escaping (WKNavigationResponsePolicy) -> Void) 
            decisionHandler(.allow)
       

    public func webView(_ webView: WKWebView, didFailProvisionalNavigation navigation: WKNavigation!, withError error: Error)  
            print("error")
       

    public func webView(_ webView: WKWebView, didFinish navigation: WKNavigation!) 
            print("finish")
       
    public func webView(_ webView: WKWebView, didFail navigation: WKNavigation!, withError error: Error) 
           print("error")
       

【问题讨论】:

坚持使用 ios 12 ! 【参考方案1】:

我发现在 iOS 10 的 wkwebview 上 scrollview.pinchGestureRecognizer 被禁用了

所以解决办法是开启 pinchGestureRecognizer,我把函数放在下面的函数中:

public func webView(_ webView: WKWebView, didFinish navigation: WKNavigation!) 
    if #available(iOS 11.0, *) 
     else 
      if webView.url?.scheme == "file"                        
         webView.scrollView.pinchGestureRecognizer?.isEnabled = true
       
    

        print("finish")
   

【讨论】:

以上是关于在 iOS 10 上的 WKWebView 中打开 PDF 文件时启用捏合缩放手势的主要内容,如果未能解决你的问题,请参考以下文章

Xamarin iOS WKWebView 不显示谷歌recaptcha

WKWebview 在 macOS 上的默认浏览器中打开目标 =“_blank”链接

iOS14,WKWebView 无法打开带有 _blank 目标的链接

iOS UIWebview,禁用双击,允许点击 WKWebview

UI11上的UIWebView / WKWebView崩溃(用完可执行内存)

iOS防止在WKWebView中打开Universal Link( Prevent universal links from opening in WKWebView)