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

WKWebview allowsBackForwardNavigationGestures和UINavigationController interactivePopGestureRecognizer均已启用

基础概念

WKWebView 是苹果提供的用于在 iOS 应用中显示网页内容的视图组件。allowsBackForwardNavigationGesturesWKWebView 的一个属性,用于控制是否允许用户通过手势进行前进和后退导航。

UINavigationController 是 iOS 中用于管理视图控制器栈的容器类,interactivePopGestureRecognizerUINavigationController 的一个属性,用于实现侧滑返回手势。

相关优势

  • allowsBackForwardNavigationGestures:
    • 提供了更自然的网页导航体验,用户可以通过手势直接进行前进和后退操作。
    • 增强了应用的交互性,使用户操作更加流畅。
  • interactivePopGestureRecognizer:
    • 提供了一种便捷的方式让用户通过侧滑手势返回上一个视图控制器。
    • 增强了应用的导航体验,使用户在应用中的操作更加直观。

类型

  • allowsBackForwardNavigationGestures:
    • 是一个布尔类型的属性,可以设置为 truefalse
  • interactivePopGestureRecognizer:
    • 是一个 UIGestureRecognizer 类型的属性,可以通过设置其 enabled 属性来启用或禁用侧滑返回手势。

应用场景

  • allowsBackForwardNavigationGestures:
    • 适用于需要在应用中嵌入网页,并希望提供类似浏览器导航体验的场景。
    • 适用于需要用户频繁进行网页前进和后退操作的场景。
  • interactivePopGestureRecognizer:
    • 适用于需要通过侧滑手势返回上一个视图控制器的场景。
    • 适用于希望提供更直观和便捷的导航体验的应用。

可能遇到的问题及解决方法

问题:同时启用 allowsBackForwardNavigationGesturesinteractivePopGestureRecognizer 时,侧滑返回手势失效

原因: 当 WKWebViewallowsBackForwardNavigationGestures 属性启用时,它会接管整个视图的手势识别,导致 UINavigationControllerinteractivePopGestureRecognizer 无法正常工作。

解决方法: 可以通过设置 WKWebViewnavigationDelegate 来解决这个问题。具体来说,可以在 navigationDelegatewebView:decidePolicyForNavigationAction:decisionHandler: 方法中判断当前的导航操作是否是侧滑返回操作,如果是,则禁用 WKWebView 的手势识别。

代码语言:txt
复制
func webView(_ webView: WKWebView, decidePolicyFor navigationAction: WKNavigationAction, decisionHandler: @escaping (WKNavigationActionPolicy) -> Void) {
    if let gesture = navigationAction.request.url?.absoluteString.contains("特定标识符") {
        webView.allowsBackForwardNavigationGestures = false
    } else {
        webView.allowsBackForwardNavigationGestures = true
    }
    decisionHandler(.allow)
}

参考链接

通过上述方法,可以在启用 allowsBackForwardNavigationGestures 的同时,确保 interactivePopGestureRecognizer 正常工作。

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

相关·内容

没有搜到相关的合辑

扫码

添加站长 进交流群

领取专属 10元无门槛券

手把手带您无忧上云

扫码加入开发者社群

热门标签

活动推荐

    运营活动

    活动名称
    广告关闭
    领券