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

Posted

技术标签:

【中文标题】滑动以返回在 ios 中的颤振 webview 中不起作用【英文标题】:Swipe to go back not working in flutter webview in ios 【发布时间】:2021-04-22 16:44:55 【问题描述】:

试过颤振网页视图。实施WillPopScope 以控制参考this 示例的后压。在 android 中滑动返回手势有效,但在 ios 中它不起作用。这不会检测手势。如何解决?

代码:

WebViewController controllerGlobal;
Future<bool> _exitApp(BuildContext context) async 
  print('back press');
  if (await controllerGlobal.canGoBack()) 
    print("onwill goback");
    controllerGlobal.goBack();
   else 
    Scaffold.of(context).showSnackBar(
      const SnackBar(content: Text("No back history item")),
    );
    return Future.value(false);
  



class _MyAppState extends State<MyApp> 
  final Completer<WebViewController> _controller =
      Completer<WebViewController>();

  @override
  Widget build(BuildContext context) 
    return WillPopScope(
      onWillPop: () => _exitApp(context),
      child: Scaffold(
        body: SafeArea(
          child: Builder(
            builder: (BuildContext context) 
              return WebView(
                initialUrl: 'https://flutter.dev',
                javascriptMode: JavascriptMode.unrestricted,
                onWebViewCreated: (WebViewController webViewController) 
                  _controller.complete(webViewController);
                ,
                onPageFinished: (String url) 
                  print('Page finished loading: $url');
                ,
              );
            ,
          ),
        ),
      ),
    );
  

注意:仅在 ios 模拟器中测试

【问题讨论】:

Swipe to go back 你能添加你的代码 sn-p 让我更清楚吗? 我编辑了这个问题。滑动返回是 iOS 中的一种手势 从屏幕的左边缘或右边缘滑动,充当后按 【参考方案1】:

WillPopScope 会导致这种情况。 在https://github.com/flutter/flutter/issues/14203中查看更多详细信息

【讨论】:

请详细说明并详细添加您的答案,而不是发布仅链接的答案,因为将来某些链接可能无法访问。

以上是关于滑动以返回在 ios 中的颤振 webview 中不起作用的主要内容,如果未能解决你的问题,请参考以下文章

颤振flutter_webview_plugin错误[NSNull长度]:无法识别的选择器发送到ios上的实例

iOS-UIWebView加载HTMLString图片显示超过屏幕宽度,导致webView可以左右滑动处的理方法

ios webview 怎么监听事件

在React Native iOS中是否可以有条件地禁用滑动以返回手势?

怎么监听webview的上下滑动事件

webview_flutter 在 iOS 中存档时导致问题