在 webview 中颤动水平滑动手势

Posted

技术标签:

【中文标题】在 webview 中颤动水平滑动手势【英文标题】:Flutter horizontal swipe gesture in webview 【发布时间】:2021-12-13 11:59:58 【问题描述】:

我现在正在构建一个 Flutter 应用程序,它有一个登录信息,它会路由到一个新屏幕,其中包含一个脚手架,其中包含一个 webView 作为主体。对于我使用的导航

Navigator.pushNamed(
  context,
  webshopRoute,
  arguments: WebshopArguments(initialUrl: shopUrl),
);

当我在 webView 中浏览时,我想返回 - 在 webView 中 - 使用从右到左的滑动手势(对于像我的 Pixel 4 这样没有后退按钮的手机)。但是现在滑动的作用是跳回登录屏幕。

我在这里找到的唯一一篇关于如何禁用它的帖子,我不想要。

非常感谢!

【问题讨论】:

【参考方案1】:

好的,所以诀窍是用 WillPopScope 包装脚手架并在 onWillPop 内部的控制器上调用 goBack()。

late WebViewController _webViewController;

@override
  Widget build(BuildContext context) 
    return WillPopScope(
      onWillPop: () async 
        _webViewController.goBack();
        return false;
      ,
      child: Scaffold(
        body: SafeArea(
          child: WebView(javascriptMode: JavascriptMode.unrestricted,
                 onWebViewCreated: (WebViewController webViewController) 
                 _webViewController = webViewController;
                 ,
.....

【讨论】:

以上是关于在 webview 中颤动水平滑动手势的主要内容,如果未能解决你的问题,请参考以下文章

在颤动的webview中禁用水平滚动

具有屏幕边缘滑动手势的水平 uitableview

如何使用颤动在按钮网格中滑动/拖动 2 个或更多按钮

颤动水平滚动一项一项

滑动以返回在 ios 中的颤振 webview 中不起作用

Closed:: 创建一个带有滑动和点击手势的 UIButton 水平轮播