首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

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

是通过设置WKWebView的UIScrollView的属性来实现的。

首先,需要获取WKWebView的UIScrollView对象:

代码语言:txt
复制
guard let scrollView = webView.subviews.first?.subviews.first as? UIScrollView else { return }

然后,设置UIScrollView的最小缩放比例和最大缩放比例:

代码语言:txt
复制
scrollView.minimumZoomScale = 1.0
scrollView.maximumZoomScale = 10.0

接下来,要实现UIScrollViewDelegate协议的方法,以便在缩放手势发生时进行相应的处理:

代码语言:txt
复制
extension ViewController: UIScrollViewDelegate {
    func viewForZooming(in scrollView: UIScrollView) -> UIView? {
        return nil
    }
}

最后,将WKWebView的UIScrollView的delegate设置为当前ViewController:

代码语言:txt
复制
scrollView.delegate = self

这样,在打开PDF文件时,用户就可以通过手势进行缩放操作了。通过设置最小缩放比例和最大缩放比例,可以控制缩放的范围。

腾讯云相关产品和产品介绍链接地址:

注意:以上产品仅为示例,实际选择使用的产品应根据具体需求和情况进行评估和决策。

页面内容是否对你有帮助?
有帮助
没帮助

相关·内容

  • WKWebView详解

    iOS 8.0和OS X 10.10开始,建议使WKWebView应用程序展示web内容,建议不要使用UIWebView或WebView。...(magnification属性)缩放页面内容,并将结果集中指定,即以指定点为中心放大 --- 浏览 是否允许水平滑动手势来触发网页前进和后退 @property(nonatomic) BOOL...; iOS,这个属性只支持3D Touch设备支持 iOS 10及以后系统版本默认值是YES,之前默认值是NO 如果将该属性值设置为YES,则iOS用户可以按下链接来预览链接,并可以检测到地址和电话号码等数据...你必须设置此属性以播放内联视频 当在iPhoneHTML文档添加视频元素,还必须包括playsinline属性 iOS 10.0之前创建应用程序必须使用webkit-playsinline属性...previewActions是元素使用默认操作选项(预览拉可见),比如打开链接,添加到阅读列表,拷贝链接,共享。

    20.6K193

    小程序新渲染引擎 Skyline 发布正式版

    总体,由于 Skyline 渲染流程更加可控,我们能让小程序特性尽可能融合进渲染流程完成,还有很多在细节优化(比如对 rpx 处理、image mode=widthFix 处理等,都是融入渲染流程...iOS 下原生组件同层渲染原理先前有介绍过,本质 WKWebView 黑盒下一种取巧实现方式,并不能完美融合到 WKWebView 渲染流程,因此很容易一些特殊样式发生变化后,同层渲染会失效...iOSWKWebView 会受系统管理,当内存紧张,系统就会将不在屏 WKWebView 回收,会使得小程序除前台以外页面丢失,虽然页面返回,我们对页面做了恢复,但页面的状态并不能 100%...原生交互动画里,手势识别与协商是一个很重要特性,而这块 Web 体系是缺失,因此 Skyline 下补全手势系统相关特性,包括常用手势识别,如缩放、拖动、双击等,还有很重要手势协商机制,遇到手势冲突...(常见于滚动容器下)决定让哪个手势生效,以实现更顺畅动画衔接。

    59730

    Skyline 渲染引擎——更接近原生渲染性能体验

    根除旧有架构问题在基于 Web 体系架构下,小程序部分基础体验会受限于 WebView 提供能力(特别是 iOS WKWebView 限制更大一些),使得一些技术方案无法做得很完美,留下一些潜在问题...iOS 下原生组件同层渲染原理先前有介绍过,本质 WKWebView 黑盒下一种取巧实现方式,并不能完美融合到 WKWebView 渲染流程,因此很容易一些特殊样式发生变化后,同层渲染会失效...iOSWKWebView 会受操作系统统一管理,当内存紧张,操作系统就会将不在屏 WKWebView 回收,会使得小程序除前台以外页面丢失,虽然页面返回,我们对页面做了恢复,但页面的状态并不能...支持常用手势识别,如缩放、拖动、双击等,并能够渲染线程同步监听手势、执行手势相关逻辑;支持手势协商处理,能够遇到手势冲突(常见于滚动容器下)决定让哪个手势生效,以实现更顺畅动画衔接。3....(img-zIr6ldp8-1688353807103)快速体验环境要求目前,安卓微信 8.0.33、iOS 微信 8.0.34 起内置了 Skyline 渲染引擎,可先更新到该版本,预览通过强切开关打开

    56750

    Hybrid App 应用 开发 9 个必备知识点复习(WebView 调试 等)

    但是目前 IOS10 以下系统以及很少了, 小结: WKWebView 相较于 UIWebView 整体上有较大提升,满足 iOS 上面使用同一套控件功能,同时对整个内存开销以及滚动刷新率和...实践发现 WKWebView 实例其实也会将 Cookie 存储于 NSHTTPCookieStorage ,但存储时机有延迟, iOS 8,当页面跳转时候,当前页面的 Cookie 会写入 NSHTTPCookieStorage...,而在 iOS 10 ,JS 执行 document.cookie 或服务器 set-cookie 注入 Cookie 会很快同步到 NSHTTPCookieStorage ,FireFox...WKWebView NSURLProtocol问题 WKWebView 独立于 app 进程之外进程执行网络请求,请求数据不经过主进程,因此, WKWebView 直接使用 NSURLProtocol...这种方法可以比较有效减少 WebView App首次打开时间。当用户访问页面,不需要初始化 WebView 时间。 当然这也带来了一些问题,包括: 额外内存消耗。

    3.1K00

    iOSWebView——WKWebView

    前言 iOS8,苹果推出了WKWebViewWKWebView有一个突出特点,就是内存占用少。 但作为一个全新WebView,API相比于之前UIWebView肯定会有所不同。...WKWebView设置 WKWebView主要设置项都在configuration成员(比如是否允许浏览器手指缩放,h5浏览器能否自动播放等)这些都属于浏览器本身设置项。...[self.webview.configuration allowsPictureInPictureMediaPlayback]; // 网页多媒体是否需要手势才能开始播放(iOS 10)...,js会尝试加载某个URL,客户端加载前拦截这个URL,通过解析这个URL识别它内容,调用相应原生方法,并阻浏览器加载这个URL。...:nil]; cookie同步 WKWebview,cookie默认不再自动处理,我们需要手动根据自己需要,将cookie添加到请求

    3.5K20

    【Hybrid】288- Hybrid App 应用开发 9 个必备知识点复习

    但是目前 IOS10 以下系统以及很少了, 小结: WKWebView 相较于 UIWebView 整体上有较大提升,满足 iOS 上面使用同一套控件功能,同时对整个内存开销以及滚动刷新率和...实践发现 WKWebView 实例其实也会将 Cookie 存储于 NSHTTPCookieStorage ,但存储时机有延迟, iOS8,当页面跳转时候,当前页面的 Cookie 会写入 NSHTTPCookieStorage...,而在 iOS10 ,JS 执行 document.cookie 或服务器 set-cookie 注入 Cookie 会很快同步到 NSHTTPCookieStorage ,FireFox 工程师曾建议通过...这种方法可以比较有效减少 WebView App首次打开时间。当用户访问页面,不需要初始化 WebView 时间。 当然这也带来了一些问题,包括: 额外内存消耗。...如果调试是 H5 页面,可以直接在手机 Safari浏览器 打开直接调试。 下面开始说说 Mac 如何调试: 1.

    2.3K20

    Hybrid App 应用开发 9 个必备知识点复习

    但是目前 IOS10 以下系统以及很少了, 小结: WKWebView 相较于 UIWebView 整体上有较大提升,满足 iOS 上面使用同一套控件功能,同时对整个内存开销以及滚动刷新率和...实践发现 WKWebView 实例其实也会将 Cookie 存储于 NSHTTPCookieStorage ,但存储时机有延迟, iOS8,当页面跳转时候,当前页面的 Cookie 会写入 NSHTTPCookieStorage...,而在 iOS10 ,JS 执行 document.cookie 或服务器 set-cookie 注入 Cookie 会很快同步到 NSHTTPCookieStorage ,FireFox 工程师曾建议通过...这种方法可以比较有效减少 WebView App首次打开时间。当用户访问页面,不需要初始化 WebView 时间。 当然这也带来了一些问题,包括: 额外内存消耗。...如果调试是 H5 页面,可以直接在手机 Safari浏览器 打开直接调试。 下面开始说说 Mac 如何调试: 1.

    2.7K20

    Hybrid App 应用开发 9 个必备知识点复习

    但是目前 IOS10 以下系统以及很少了, 小结: WKWebView 相较于 UIWebView 整体上有较大提升,满足 iOS 上面使用同一套控件功能,同时对整个内存开销以及滚动刷新率和...实践发现 WKWebView 实例其实也会将 Cookie 存储于 NSHTTPCookieStorage ,但存储时机有延迟, iOS8,当页面跳转时候,当前页面的 Cookie 会写入 NSHTTPCookieStorage...,而在 iOS10 ,JS 执行 document.cookie 或服务器 set-cookie 注入 Cookie 会很快同步到 NSHTTPCookieStorage ,FireFox 工程师曾建议通过...这种方法可以比较有效减少 WebView App首次打开时间。当用户访问页面,不需要初始化 WebView 时间。 当然这也带来了一些问题,包括: 额外内存消耗。...如果调试是 H5 页面,可以直接在手机 Safari浏览器 打开直接调试。 下面开始说说 Mac 如何调试: 1.

    2.3K30

    问题记录

    然后笔者取到照片链接在 Chrome 打开,发现图片是可以显示 Safari 打开,是黑色;且从 Chrome 右键保存到本地,预览打开也是黑色。...这张图片 Mac OS 和 iOS 渲染都是黑色。...WKWebview加载xlsx 文件,预览不了问题 笔者这边情况是,打开了一个网页,网页有个按钮,点击之后链接,正常在电脑浏览器打开是下载, iOS WKWebview打开是预览。...陷入了僵局,最后用户反馈打开系统相机也是黑屏,但是把缩放调到2倍就正常了。...于是怀疑是摄像头坏了一颗, 默认是使用正常摄像头拍摄,当拍远景或者缩放调到2倍使用了广角镜头,用户应该是正常摄像头坏掉了,而另一颗远景是好。 但是为什么企业微信是好

    1.3K20

    UI篇- UIWebView使用大全

    ,不做深究 WKWebViewiOS8推出,算是UIWebVeiw升级版。...支持内建手势, 据说高达60fps刷新频率(不卡) WKWebView创建 导入Webkit这个类库(WKWebVeiw包含在里面的) 遵守协议(一般前两个就行啦,第三个主要是与JS相关东西....使用原生API OC调用JS方法 与UIWebView进行交互,调用web页面需要传参函数,参数需要带单引号,或者双引号(双引号需要进行转义转义字符前加\),传递json字符串不需要加单引号或双引号...如何消除Web Alert弹框中出现网址 ? 这里解决方法是通过使用 WKWebView 方法。...UIWebView iOS11使用。 ? UIWebView iOS 11 当顶部 y值设为 0 ,是依然无法盖住UIStatusBar区域,但是滚动就会出现问题了。

    2K10

    iOS小技能:右滑返回

    引言 原理:利用系统返回手势interactivePopGestureRecognizer进行实现 使用场景:返回按钮有点小,不好触发返回,可借助右滑返回来提升用户体验 I 添加右滑返回手势 1.1...return YES; } return originalValue; } } return YES; } 其中第三步...方法将手势返回强制加回来 2.3 动态添加方法 使用场景: 消息发送和消息转发时会用到动态添加方法 全局控制返回手势 下面的+addMethod方法有三个参数,第一个参数是要添加方法类,第二个参数是方法...= YES; // iOS默认为NO,表示是否允许不经过用户交互由javaScript自动打开窗口 preference.javaScriptCanOpenWindowsAutomatically...config.allowsPictureInPictureMediaPlayback = YES; //设置请求User-Agent信息应用程序名称 iOS9后可用

    2.2K30

    一个Flutter WebView侧滑bug解决方案

    问题定位 2.1 猜测WebView内部手势和外部手势冲突 首先猜测是不是内部滑动手势跟外部冲突,因此找到了iOS WKWebView管理内部侧滑API。...// 猜测原因是iOS侧滑是是一个同步手势,并没有时机去执行异步callback,具体需要看下源码,待补充 Future _exit() async { //iOS咋不进去...解决方案 3.1 WillPopScope与手势怎么共存 使用WillPopScope使用手势方法比较容易得出 onWillPop: Platform.isIOS ?...null : popCallback, 到这里就可以实现iOS侧滑返回问题,但是带来新问题是这里手势WKWebView内部冲突,webview内部无法返回。...因此iOS实现了一下WKWebViewKVO,将一些信息canGoBack通过channel回调到Flutter。

    3.2K50

    iOS监听H5页面goBack返回事件 & 网页监听APP返回键 (NavigationBackItemInjection)

    截取当前显示屏幕WKWebView UINavigationBarDelegate NavigationType Disable all the '_blank' target in page's...target WKWebViewWKNavigationDelegate代理方法处理应用跳转 简单处理WKWebView加载新页面 WKWebView显示JS弹框 WKWebView调用js方法...解决方案: 1、iOS监听H5页面goBack返回事件 2、直接使用Safari打开URL 相关文章: iOS 封装WebView 控制器https://kunnan.blog.csdn.net/article...back-forward列表内容,相当于回到关闭之前看过详情界面。...5、 _webView.allowsBackForwardNavigationGestures = YES;允许左滑右滑,默认值为NO;设置为YES后,即可实现左右滑手势操作后退前进 6、WKWebView

    5.9K21
    领券